<?php

namespace App\Traits;

trait ApiResponser
{

    protected function success($data, string $message = 'Your action has been processed.', int $code = 200): \Illuminate\Http\JsonResponse
    {
        return response()->json([
            'api_code' => $code,
            'api_status' => 'success',
            'api_message' => $message,
            'api_data' => $data
        ], $code);
    }


    protected function error(string $message = 'The system is not able to process your request at the moment. Kindly try again later. Thank You!', int $code = 500, $data = []): \Illuminate\Http\JsonResponse
    {
        return response()->json([
            'api_code' => $code,
            'api_status' => 'error',
            'api_message' => $message,
            'api_data' => $data
        ],$code);
    }

    public static function validatorFormatErrors($validator): array
    {
        $errors = json_decode($validator, true);
        $errorMessages['status'] = 'failed';
        $errorMessages['errors'] = collect($errors)->flatten()->values()->all();
        return $errorMessages;
    }

}
