ultimatepos/Modules/Connector/Http/Controllers/Api/V2/BaseController.php

44 lines
1.3 KiB
PHP

<?php
namespace Modules\Connector\Http\Controllers\Api\V2;
use Illuminate\Http\JsonResponse;
use Illuminate\Pagination\LengthAwarePaginator;
use Modules\Connector\Http\Controllers\Api\ApiController;
class BaseController extends ApiController
{
protected function success($data = null, string $message = '', int $status = 200): JsonResponse
{
return response()->json([
'success' => true,
'message' => $message,
'data' => $data,
], $status);
}
protected function paginated(LengthAwarePaginator $paginator, string $message = ''): JsonResponse
{
return response()->json([
'success' => true,
'message' => $message,
'data' => $paginator->items(),
'meta' => [
'current_page' => $paginator->currentPage(),
'last_page' => $paginator->lastPage(),
'per_page' => $paginator->perPage(),
'total' => $paginator->total(),
],
]);
}
protected function error(string $message, int $status = 400, $errors = null): JsonResponse
{
return response()->json([
'success' => false,
'message' => $message,
'errors' => $errors,
], $status);
}
}