Files
Laravel/app/Http/Controllers/Api/V1/ApiController.php
David Melendez e25d53d054 init commit
2026-01-14 22:38:44 +01:00

56 lines
1.2 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Http\Controllers\Api\V1;
use App\Http\Controllers\Controller;
use Illuminate\Http\JsonResponse;
/**
* Base API Controller for V1
*
* @author David Valera Melendez <david@valera-melendez.de>
* @created 2025-08-08
* @location Made in Germany 🇩🇪
*/
abstract class ApiController extends Controller
{
/**
* Success response
*/
protected function successResponse($data = null, string $message = 'Success', int $code = 200): JsonResponse
{
return response()->json([
'success' => true,
'message' => $message,
'data' => $data,
], $code);
}
/**
* Error response
*/
protected function errorResponse(string $message = 'Error', int $code = 400, $errors = null): JsonResponse
{
$response = [
'success' => false,
'message' => $message,
];
if ($errors) {
$response['errors'] = $errors;
}
return response()->json($response, $code);
}
/**
* Validation error response
*/
protected function validationErrorResponse($errors): JsonResponse
{
return $this->errorResponse('Validation failed', 422, $errors);
}
}