fix doctor detail resource
This commit is contained in:
@@ -4,14 +4,13 @@ namespace Modules\Linksehat\Http\Controllers\Api;
|
||||
|
||||
use App\Helpers\Helper;
|
||||
use App\Models\Organization;
|
||||
use App\Models\Practice;
|
||||
use App\Models\Practitioner;
|
||||
use App\Models\PractitionerRole;
|
||||
use Illuminate\Contracts\Support\Renderable;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Modules\Linksehat\Transformers\DoctorResource;
|
||||
use Modules\Linksehat\Transformers\Doctor\DoctorResourceDetail;
|
||||
use Modules\Linksehat\Transformers\PractitionerRoleToDoctorResource;
|
||||
|
||||
class DoctorController extends Controller
|
||||
@@ -108,7 +107,7 @@ class DoctorController extends Controller
|
||||
])
|
||||
->findOrFail($id);
|
||||
|
||||
return response()->json(DoctorResource::make($doctor));
|
||||
return response()->json(DoctorResourceDetail::make($doctor));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -17,12 +17,34 @@ class DoctorResourceDetail extends JsonResource
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
foreach ($this->practices as $practice) {
|
||||
$prices[$practice->service_code] = !empty($practice->price) ? Helper::currencyIdrFormat($practice->price) : '-';
|
||||
foreach ($this->practitionerRoles as $practitionerRole) {
|
||||
foreach ($practitionerRole->practices as $practice) {
|
||||
foreach ($practice->prices as $price) {
|
||||
$prices[$practice->service_code] = !empty($price->price_net) ? Helper::currencyIdrFormat($price->price_net) : '-';
|
||||
}
|
||||
}
|
||||
|
||||
// Spesialis
|
||||
$spesialis[$practitionerRole->speciality_id]['id'] = $practitionerRole->speciality->id;
|
||||
$spesialis[$practitionerRole->speciality_id]['name'] = $practitionerRole->speciality->name;
|
||||
$spesialis[$practitionerRole->speciality_id]['str'] = random_int(1000000000000000, 5000000000000000);
|
||||
|
||||
if ($practitionerRole->is_chat_available) {
|
||||
$isChatAvailable = true;
|
||||
}
|
||||
if ($practitionerRole->is_video_available) {
|
||||
$isVideoAvailable = true;
|
||||
}
|
||||
if ($practitionerRole->is_walkin_available) {
|
||||
$isWalkinAvailable = true;
|
||||
}
|
||||
if ($practitionerRole->is_instant_chat_available) {
|
||||
$isInstantChatAvailable = true;
|
||||
}
|
||||
}
|
||||
|
||||
$award[] = explode("\n", $this->practitioner->meta->award);
|
||||
$education[] = explode("\n", $this->practitioner->meta->education);
|
||||
$award[] = explode("\n", $this->meta->award);
|
||||
$education[] = explode("\n", $this->meta->education);
|
||||
|
||||
$queryHospitals = Organization::query()
|
||||
->without('meta')
|
||||
@@ -37,28 +59,23 @@ class DoctorResourceDetail extends JsonResource
|
||||
$queryHospitals = $queryHospitals->orderBy('organizations.name', 'asc')->where('organizations.id', $this->organization_id)->get();
|
||||
|
||||
return [
|
||||
'name' => $this->practitioner->person->full_name,
|
||||
'name' => $this->person->full_name,
|
||||
'length_of_work_year' => rand(1, 20),
|
||||
'price' => $prices,
|
||||
'rating' => rand(50, 100),
|
||||
'photos' => [
|
||||
'title' => 'doctor-avatar-' . $this->practitioner->person->id,
|
||||
'title' => 'doctor-avatar-' . $this->person->id,
|
||||
'url' => asset('images/default-doctor-avatar.png')
|
||||
],
|
||||
'spesialis' => [
|
||||
[
|
||||
'name' => 'Spesialis ' . $this->speciality->name,
|
||||
'str' => random_int(1000000000000000, 5000000000000000)
|
||||
],
|
||||
],
|
||||
'spesialis' => $spesialis,
|
||||
'award' => $award,
|
||||
'education' => $education,
|
||||
'location_practect' => HospitalResource::collection($queryHospitals),
|
||||
'available' => [
|
||||
'is_chat_available' => $this->is_chat_available,
|
||||
'is_video_available' => $this->is_video_available,
|
||||
'is_walkin_available' => $this->is_walkin_available,
|
||||
'is_instant_chat_available' => $this->is_instant_chat_available,
|
||||
'is_chat_available' => $isChatAvailable,
|
||||
'is_video_available' => $isVideoAvailable,
|
||||
'is_walkin_available' => $isWalkinAvailable,
|
||||
'is_instant_chat_available' => $isInstantChatAvailable,
|
||||
'day_available' => $this->day_available
|
||||
]
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user