%PDF- %PDF-
Direktori : /var/www/html/klinisol/klinisol-api/app/Http/Controllers/Api/v1/ |
Current File : /var/www/html/klinisol/klinisol-api/app/Http/Controllers/Api/v1/HospitalController.php |
<?php namespace App\Http\Controllers\Api\v1; use App\Http\Controllers\Api\ApiController; use App\Http\Requests\Api\v1\Hospital\CreateHospitalRequest; use App\Http\Requests\Api\v1\Hospital\UpdateHospitalRequest; use App\Models\Hospital; use App\Transformers\HospitalTransformer; use Illuminate\Http\Request; class HospitalController extends ApiController { /** * @param Request $request * @return \Spatie\Fractal\Fractal */ public function index(Request $request) { $result = $this->filterHospital($request) ->paginate($request->get('perPage')); return $this->withPaginated($result, new HospitalTransformer()); } /** * @param Request $request * @return Hospital[]|\Illuminate\Database\Eloquent\Collection */ private function filterHospital(Request $request) { $result = Hospital::query(); if ($code = $request->get('code')) { $result = $result->where('code', 'like', "$code%"); } if ($name = $request->get('name')) { $result = $result->where('name', 'like', "$name%"); } if ($address = $request->get('address')) { $result = $result->where('address', 'like', "$address%"); } return $result; } /** * @param $id * @return \Illuminate\Http\JsonResponse */ public function show($id) { $hospital = Hospital::query() ->findOrFail($id); return $this->item($hospital, new HospitalTransformer()); } /** * @param CreateHospitalRequest $request * @return \Illuminate\Http\JsonResponse */ public function store(CreateHospitalRequest $request) { $hospital = Hospital::query() ->create([ 'code' => $request->get('code'), 'name' => $request->get('name'), 'address' => $request->get('address'), ]); return $this->item($hospital, new HospitalTransformer()); } /** * @param UpdateHospitalRequest $request * @param $id * @return \Illuminate\Http\JsonResponse */ public function update(UpdateHospitalRequest $request, $id) { $hospital = Hospital::query() ->findOrFail($id); $hospital->update($request->only(['name', 'address'])); return $this->item($hospital, new HospitalTransformer()); } }