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