Files
backend/app/Http/Controllers/Concerns/RespondsWithJson.php
T
2026-06-28 12:29:53 +02:00

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);
}
}