43 lines
993 B
PHP
43 lines
993 B
PHP
<?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);
|
|
}
|
|
}
|