From dbece05d2b9d293094be196bc06acf0450de47f7 Mon Sep 17 00:00:00 2001 From: Muhammad Fajar Date: Thu, 3 Nov 2022 09:09:50 +0700 Subject: [PATCH] api speciality fix speciality & add list speciality for filter in booking appointment --- .../Controllers/Api/SpecialityController.php | 13 ++++++++++ Modules/Linksehat/Routes/api.php | 1 + .../Speciality/SpecialityResource.php | 26 ++++++++++++------- .../Transformers/SpecialityResource.php | 23 ---------------- 4 files changed, 30 insertions(+), 33 deletions(-) delete mode 100644 Modules/Linksehat/Transformers/SpecialityResource.php diff --git a/Modules/Linksehat/Http/Controllers/Api/SpecialityController.php b/Modules/Linksehat/Http/Controllers/Api/SpecialityController.php index fa8cd9f4..bc9eff59 100644 --- a/Modules/Linksehat/Http/Controllers/Api/SpecialityController.php +++ b/Modules/Linksehat/Http/Controllers/Api/SpecialityController.php @@ -4,6 +4,7 @@ namespace Modules\Linksehat\Http\Controllers\Api; use App\Models\Practice; use App\Models\PractitionerRole; +use App\Models\Speciality; use Illuminate\Contracts\Support\Renderable; use Illuminate\Http\Request; use Illuminate\Routing\Controller; @@ -51,4 +52,16 @@ class SpecialityController extends Controller ] ]); } + + public function listSpeciality() + { + $specialities = Speciality::query()->get(['name']); + + return response()->json([ + 'status' => 'success', + 'statusCode' => Response::HTTP_OK, + 'message' => 'Data Berhasil di ambil', + 'data' => SpecialityResource::collection($specialities) + ]); + } } diff --git a/Modules/Linksehat/Routes/api.php b/Modules/Linksehat/Routes/api.php index e55a2254..a75f8329 100644 --- a/Modules/Linksehat/Routes/api.php +++ b/Modules/Linksehat/Routes/api.php @@ -40,6 +40,7 @@ Route::prefix('linksehat')->group(function () { Route::controller(SpecialityController::class)->group(function () { Route::get('specialities', 'index'); + Route::get('list-specialities', 'listSpeciality'); }); Route::controller(HospitalController::class)->group(function () { diff --git a/Modules/Linksehat/Transformers/Speciality/SpecialityResource.php b/Modules/Linksehat/Transformers/Speciality/SpecialityResource.php index b4477951..2a1ff5ef 100644 --- a/Modules/Linksehat/Transformers/Speciality/SpecialityResource.php +++ b/Modules/Linksehat/Transformers/Speciality/SpecialityResource.php @@ -15,27 +15,33 @@ class SpecialityResource extends JsonResource */ public function toArray($request) { - foreach ($this->practices as $practice) { - if ($practice->service_code === 'walkin') { - $practices[] = $practice->id; + if ($this->practices && $this->prices) { + foreach ($this->practices as $practice) { + if ($practice->service_code === 'walkin') { + $practices[] = $practice->id; + } } - } - foreach ($this->prices as $price) { - if (in_array($price->priceable_id, $practices)) { - $prices = $price->price_net; + foreach ($this->prices as $price) { + if (in_array($price->priceable_id, $practices)) { + $prices = $price->price_net; + } } } return [ - 'doctors' => [ + $this->mergeWhen($this->practitioner && $prices, [ 'id' => isset($this->practitioner->person->id) ? $this->practitioner->person->id : $this->practitioner_id, 'name' => isset($this->practitioner->person->name) ? $this->practitioner->person->name : $this->person_name, 'specialis' => 'Spesialis ' . (isset($this->speciality->name) ? $this->speciality->name : $this->speciality_name), 'experience' => rand(5, 12), 'rating' => rand(20, 100), - 'price' => Helper::currencyIdrFormat($prices), - ] + 'price' => Helper::currencyIdrFormat($prices) ?? null, + ]), + $this->mergeWhen($this->name, [ + 'title' => 'Spesialis ' . $this->name, + 'value' => $this->name + ]) ]; } } diff --git a/Modules/Linksehat/Transformers/SpecialityResource.php b/Modules/Linksehat/Transformers/SpecialityResource.php deleted file mode 100644 index 8916baee..00000000 --- a/Modules/Linksehat/Transformers/SpecialityResource.php +++ /dev/null @@ -1,23 +0,0 @@ - $this->id, - 'code' => $this->code, - 'name' => $this->name, - ]; - } -}