Skip to content

Commit 2b46ae5

Browse files
committed
Add common API response helpers to Controller
Introduced convenience methods for standard API responses, including success, created, error, not found, and no content responses. These helpers simplify and standardize JSON responses across controllers.
1 parent dde1b06 commit 2b46ae5

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

src/Http/Controller.php

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,44 @@ protected function apiResponse(mixed $data = null, string $message = null, int $
2323
'data' => $data,
2424
], $statusCode);
2525
}
26+
27+
/**
28+
* Convenience wrapper for successful responses.
29+
*/
30+
protected function successResponse(mixed $data = null, string $message = null, int $statusCode = 200): JsonResponse
31+
{
32+
return $this->apiResponse($data, $message, $statusCode, true);
33+
}
34+
35+
/**
36+
* Response for newly created resources.
37+
*/
38+
protected function createdResponse(mixed $data = null, string $message = 'Created'): JsonResponse
39+
{
40+
return $this->apiResponse($data, $message, 201, true);
41+
}
42+
43+
/**
44+
* Convenience wrapper for error responses.
45+
*/
46+
protected function errorResponse(string $message, int $statusCode = 400, mixed $data = null): JsonResponse
47+
{
48+
return $this->apiResponse($data, $message, $statusCode, false);
49+
}
50+
51+
/**
52+
* Response used when a resource cannot be found.
53+
*/
54+
protected function notFoundResponse(string $message = 'Not found'): JsonResponse
55+
{
56+
return $this->errorResponse($message, 404);
57+
}
58+
59+
/**
60+
* Response with no content.
61+
*/
62+
protected function noContentResponse(): JsonResponse
63+
{
64+
return response()->json([], 204);
65+
}
2666
}

0 commit comments

Comments
 (0)