user-service/app/Traits/ApiResponser.php

53 lines
1.5 KiB
PHP
Executable File

<?php
namespace App\Traits;
use Illuminate\Http\Response;
// Api Response schema
/**
* @OA\Schema(
* schema="ApiResponse",
* title="API Response",
* description="Format d'un message de reponse",
* @OA\Property(
* property="status", description="Code de la requete",
* @OA\Schema(type="number", example=200)
* ),
* @OA\Property(
* property="response", description="Resultat de la requete si pas d'erreur",
* @OA\Schema(type="object", example="{name : 'Djery'}")
* ),
* @OA\Property(
* property="error", description="Message d'erreur si erreur",
* @OA\Schema(type="string", example="There is an error")
* )
* )
*/
trait ApiResponser
{
public function successResponse($data, $code = Response::HTTP_OK)
{
return response($this->formatResponse($code, $data, null), $code)->header('Content-Type', 'application/json');
}
public function errorResponse($message, $code = Response::HTTP_BAD_REQUEST)
{
if ($code == 0) {
$code = Response::HTTP_BAD_REQUEST;
}
return response()->json($this->formatResponse($code, null, $message), $code);
}
// public function errorMessage($message , $code)
// {
// return response($message ,$code)->header('Content-Type', 'application/json');
// }
private function formatResponse(int $status, $response = null, $error = null)
{
return ['status' => $status, 'response' => $response, 'error' => $error];
}
}