File manager - Edit - /var/www/html/ciosp/api/app/Http/Services/BaseService.php
Back
<?php namespace App\Http\Services; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use App\Classes\BaseServiceResponse; use Exception; use Illuminate\Database\Eloquent\Model; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\Collection as BaseCollection; use Illuminate\Http\Resources\Json\ResourceCollection; use Illuminate\Database\Eloquent\Collection as EloquentCollection; use Illuminate\Pagination\LengthAwarePaginator; class BaseService { protected $model; public function success(array|ResourceCollection|JsonResource|Model|EloquentCollection|BaseCollection|null $data = [], int|null $code = JsonResponse::HTTP_OK, string $message = null): BaseServiceResponse { $message = is_null($message) ? __('validation.success') : $message; return new BaseServiceResponse( true, $code, $data, $message ); } public function error(array|null $errors = [], int|null $code = JsonResponse::HTTP_BAD_REQUEST, string|null $message = null): BaseServiceResponse { $message = is_null($message) ? __('validation.error') : $message; return new BaseServiceResponse( false, $code, $errors, $message ); } public function paginateRessource(Request $request, string $resourceClass): LengthAwarePaginator { if (!class_exists($resourceClass)) { throw new Exception(__('crud.message.class_not_found')); } $perPage = is_null($request['perPage']) ? 10 : $request['perPage']; $page = is_null($request['page']) ? 1 : $request['page']; $offset = ($page - 1 ) * $perPage; $query = $this->model::filter(); $total = $query->get()->count(); $result = $query->offset($offset)->limit($perPage); return new LengthAwarePaginator(new $resourceClass($result->get()), $total, $perPage, $page); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings