api speciality

fix speciality & add list speciality for filter in booking appointment
This commit is contained in:
Muhammad Fajar
2022-11-03 09:09:50 +07:00
parent 0115d3fbb3
commit dbece05d2b
4 changed files with 30 additions and 33 deletions

View File

@@ -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)
]);
}
}

View File

@@ -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 () {

View File

@@ -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
])
];
}
}

View File

@@ -1,23 +0,0 @@
<?php
namespace Modules\Linksehat\Transformers;
use Illuminate\Http\Resources\Json\JsonResource;
class SpecialityResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'code' => $this->code,
'name' => $this->name,
];
}
}