nanosanteservice/app/Traits/ApiResponser.php

46 lines
1.2 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)
{
return response()->json($this->formatResponse($code, null, $message), $code);
}
private function formatResponse(int $status, $response = null, $error = null)
{
return ['status' => $status, 'response' => $response, 'error' => $error];
}
}