feat: add app and database modules
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Http\Helpers;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
|
||||
class ApiResponse
|
||||
{
|
||||
public static function success(mixed $data = null, string $message = 'Success', int $code = 200): JsonResponse
|
||||
{
|
||||
$payload = ['status' => 'success', 'message' => $message];
|
||||
|
||||
if ($data !== null) {
|
||||
$payload['data'] = $data;
|
||||
}
|
||||
|
||||
return response()->json($payload, $code);
|
||||
}
|
||||
|
||||
public static function error(string $message = 'Error', int $code = 400, mixed $errors = null): JsonResponse
|
||||
{
|
||||
$payload = ['status' => 'error', 'message' => $message];
|
||||
|
||||
if ($errors !== null) {
|
||||
$payload['errors'] = $errors;
|
||||
}
|
||||
|
||||
return response()->json($payload, $code);
|
||||
}
|
||||
|
||||
public static function created(mixed $data = null, string $message = 'Created successfully'): JsonResponse
|
||||
{
|
||||
return self::success($data, $message, 201);
|
||||
}
|
||||
|
||||
public static function notFound(string $message = 'Resource not found'): JsonResponse
|
||||
{
|
||||
return self::error($message, 404);
|
||||
}
|
||||
|
||||
public static function unauthorized(string $message = 'Unauthorized'): JsonResponse
|
||||
{
|
||||
return self::error($message, 401);
|
||||
}
|
||||
|
||||
public static function forbidden(string $message = 'Forbidden'): JsonResponse
|
||||
{
|
||||
return self::error($message, 403);
|
||||
}
|
||||
|
||||
public static function validationError(mixed $errors, string $message = 'Validation failed'): JsonResponse
|
||||
{
|
||||
return self::error($message, 422, $errors);
|
||||
}
|
||||
|
||||
public static function serverError(string $message = 'Internal server error'): JsonResponse
|
||||
{
|
||||
return self::error($message, 500);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user