Changeset View
Changeset View
Standalone View
Standalone View
src/app/Http/Controllers/Controller.php
Show All 13 Lines | class Controller extends BaseController | ||||
use ValidatesRequests; | use ValidatesRequests; | ||||
/** | /** | ||||
* Common error response builder for API (JSON) responses | * Common error response builder for API (JSON) responses | ||||
* | * | ||||
* @param int $code Error code | * @param int $code Error code | ||||
* @param string $message Error message | * @param string $message Error message | ||||
* @param array $data Additional response data | |||||
* | * | ||||
* @return \Illuminate\Http\JsonResponse | * @return \Illuminate\Http\JsonResponse | ||||
*/ | */ | ||||
protected function errorResponse(int $code, string $message = null) | protected function errorResponse(int $code, string $message = null, array $data = []) | ||||
{ | { | ||||
$errors = [ | $errors = [ | ||||
400 => "Bad request", | 400 => "Bad request", | ||||
401 => "Unauthorized", | 401 => "Unauthorized", | ||||
403 => "Access denied", | 403 => "Access denied", | ||||
404 => "Not found", | 404 => "Not found", | ||||
422 => "Input validation error", | 422 => "Input validation error", | ||||
405 => "Method not allowed", | 405 => "Method not allowed", | ||||
500 => "Internal server error", | 500 => "Internal server error", | ||||
]; | ]; | ||||
$response = [ | $response = [ | ||||
'status' => 'error', | 'status' => 'error', | ||||
'message' => $message ?: (isset($errors[$code]) ? $errors[$code] : "Server error"), | 'message' => $message ?: (isset($errors[$code]) ? $errors[$code] : "Server error"), | ||||
]; | ]; | ||||
if (!empty($data)) { | |||||
$response = $response + $data; | |||||
} | |||||
return response()->json($response, $code); | return response()->json($response, $code); | ||||
} | } | ||||
} | } |