This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Concerns;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
|
||||
trait RespondsWithJson
|
||||
{
|
||||
protected function success(mixed $data = null, ?string $message = null, int $status = 200): JsonResponse
|
||||
{
|
||||
$payload = ['success' => true];
|
||||
|
||||
if ($message !== null) {
|
||||
$payload['message'] = $message;
|
||||
}
|
||||
|
||||
if ($data !== null) {
|
||||
$payload['data'] = $data;
|
||||
}
|
||||
|
||||
return response()->json($payload, $status);
|
||||
}
|
||||
|
||||
protected function created(mixed $data, ?string $message = null): JsonResponse
|
||||
{
|
||||
return $this->success($data, $message, 201);
|
||||
}
|
||||
|
||||
protected function error(string $message, int $status = 400, ?array $errors = null): JsonResponse
|
||||
{
|
||||
$payload = [
|
||||
'success' => false,
|
||||
'message' => $message,
|
||||
];
|
||||
|
||||
if ($errors !== null) {
|
||||
$payload['errors'] = $errors;
|
||||
}
|
||||
|
||||
return response()->json($payload, $status);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user