%PDF- %PDF-
Direktori : /var/www/html/o91-api/app/Http/Controllers/Api/v1/ |
Current File : /var/www/html/o91-api/app/Http/Controllers/Api/v1/UserApplicationsController.php |
<?php namespace App\Http\Controllers\Api\v1; use App\Exports\UserApplicationsExport; use App\Http\Controllers\Api\ApiController; use App\Models\User; use App\Models\UserApplication; use App\Transformers\UserApplicationTransformer; use Illuminate\Http\Request; use Illuminate\Pagination\LengthAwarePaginator; class UserApplicationsController extends ApiController { /** * @param Request $request * * @return UsersController */ public function index(Request $request) { /** @var LengthAwarePaginator $result */ $result = $this->filterUsers($request) ->paginate($request->get('perPage')); return $this->withPaginated($result, new UserApplicationTransformer()); } private function filterUsers(Request $request) { $result = UserApplication::query(); if ($name = $request->get('name')) { $result = $result->where('name', 'like', "$name%"); } if ($surname = $request->get('surname')) { $result = $result->where('surname', 'like', "$surname%"); } if ($email = $request->get('email')) { $result = $result->where('email', 'like', "$email%"); } return $result; } /** * @param $id * * @return UsersController */ public function show($id) { $user = UserApplication::query() ->find($id); return $this->item($user, new UserApplicationTransformer()); } /** * @param Request $request * * @return \Illuminate\Http\Response|\Symfony\Component\HttpFoundation\BinaryFileResponse */ public function exportExcel(Request $request) { return (new UserApplicationsExport($this->filterUsers($request)))->download("user_applications.xlsx"); } }