30 lines
836 B
PHP
Executable file
30 lines
836 B
PHP
Executable file
<?php
|
|
|
|
namespace App\Http\Controllers\Api;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Services\OutputService;
|
|
use Illuminate\Http\JsonResponse;
|
|
|
|
class ApiController extends Controller
|
|
{
|
|
public function response(
|
|
bool $success = true,
|
|
?array $payload = null,
|
|
array|string|null $errors = null,
|
|
int $statusCode = 200,
|
|
): JsonResponse
|
|
{
|
|
return response()->json(resolve(OutputService::class)->response($success, $payload, $errors), $statusCode);
|
|
}
|
|
|
|
public function success(?array $payload, int $statusCode = 200): JsonResponse
|
|
{
|
|
return $this->response(true, $payload, null, $statusCode);
|
|
}
|
|
|
|
public function error(array|string|null $errors, int $statusCode = 400): JsonResponse
|
|
{
|
|
return $this->response(false, null, $errors, $statusCode);
|
|
}
|
|
}
|