api doctor detail

This commit is contained in:
Muhammad Fajar
2022-10-27 14:37:12 +07:00
parent 0ece467d21
commit 2f84f43ae5
11 changed files with 245 additions and 106 deletions

View File

@@ -5,12 +5,13 @@ namespace Modules\Linksehat\Http\Controllers\Api;
use App\Helpers\Helper;
use App\Models\Practitioner;
use App\Models\PractitionerRole;
use App\Models\PractitionerRoleAvailability;
use DB;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Modules\Linksehat\Transformers\DoctorResource;
use Modules\Linksehat\Transformers\PractitionerRoleToDoctorDetailResource;
use Modules\Linksehat\Transformers\Doctors\DoctorResourceDetail;
use Modules\Linksehat\Transformers\PractitionerRoleToDoctorResource;
class DoctorController extends Controller
@@ -92,27 +93,23 @@ class DoctorController extends Controller
*/
public function show(Request $request, $id)
{
$doctor = Practitioner::query()
$queryDoctor = PractitionerRole::query()
->with([
'practitionerRoles',
'practitionerRoles.metas',
'practitionerRoles.speciality',
'practitionerRoles.organization' => function ($query) {
$query->leftJoin('addresses', function ($q) {
$q->on('organizations.main_address_id', '=', 'addresses.id');
$q->where('addresses.addressable_type', '=', Organization::class);
});
},
'practitionerRoles.practices',
'practitionerRoles.availabilities',
'person',
'metas',
'practitioner',
'speciality',
'practices.prices'
])
->findOrFail($id);
// return $doctor;
$queryAvailables = PractitionerRoleAvailability::query()->with(['days' => function ($query) {
$query->select(['availability_id', 'day']);
}])->where('practitioner_role_id', $id)->get(['id', 'start_time']);
return response()->json(DoctorResource::make($doctor));
// return $queryDoctor;
$doctor = DoctorResourceDetail::make($queryDoctor);
$doctor['day_available'] = Helper::dailyAvailabilities($queryAvailables);
// return $doctor;
return response()->json(compact('doctor'));
}
/**