From 83d99953aa34e8472518341e7a6a85c219fe5035 Mon Sep 17 00:00:00 2001 From: Kendrick Chan Date: Wed, 30 Jun 2021 13:21:21 +0800 Subject: [PATCH] Add fields to get jo info call in mobile api #593 --- src/Controller/APIController.php | 48 ++++++++++++++++++++++++++------ 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/src/Controller/APIController.php b/src/Controller/APIController.php index 46342756..30c38ade 100644 --- a/src/Controller/APIController.php +++ b/src/Controller/APIController.php @@ -1828,7 +1828,7 @@ class APIController extends Controller implements LoggedController } // we can't use param converter for now because we want to output the proper 404 - public function getJobOrderInfo($id, Request $req, EntityManagerInterface $em) + public function getJobOrderInfo($id, Request $req, EntityManagerInterface $em, RiderTracker $rt) { // check required parameters and api key $res = $this->checkParamsAndKey($req, $em, []); @@ -1862,7 +1862,7 @@ class APIController extends Controller implements LoggedController } // put into job order data array - $jo_data = $this->generateJobOrderData($jo); + $jo_data = $this->generateJobOrderData($jo, $rt); $data = [ @@ -1873,16 +1873,24 @@ class APIController extends Controller implements LoggedController return $res->getReturnResponse(); } - protected function generateJobOrderData($jo) + protected function generateJobOrderData($jo, $rt) { $status = $jo->getStatus(); - $jo_data = [ - 'id' => $jo->getID(), + $dest = $jo->getCoordinates(); + + $jo_data = [ + 'id' => $jo->getID(), 'date_create' => $jo->getDateCreate()->format('M d, Y'), - 'service_type' => $jo->getServiceType(), + 'service_type' => $jo->getServiceType(), + 'destination' => [ + 'long' => $dest->getLongitude(), + 'lat' => $dest->getLatitude(), + ], + 'delivery_address' => $jo->getDeliveryAddress(), + 'delivery_instructions' => $jo->getDeliveryInstructions(), 'status' => $status, - ]; + ]; // customer vehicle and warranty $cv = $jo->getCustomerVehicle(); @@ -1900,7 +1908,29 @@ class APIController extends Controller implements LoggedController $rider = $jo->getRider(); if ($rider != null) { - $jo_data['rider'] = $rider->getFullName(); + // default image url + $url_prefix = $req->getSchemeAndHttpHost(); + $image_url = $url_prefix . '/assets/images/user.gif'; + if ($rider->getImageFile() != null) + $image_url = $url_prefix . '/uploads/' . $rider->getImageFile(); + + $coord = $rt->getRiderLocation($rider->getID()); + + $jo_data['rider'] = [ + 'id' => $rider->getID(), + 'name' => $rider->getFullName(), + 'plate_num' => $rider->getPlateNumber(), + 'contact_num' => $rider->getContactNumber(), + 'image_url' => $image_url, + 'location' => [ + 'long' => $coord->getLongitude(), + 'lat' => $coord->getLatitude() + ] + ]; + } + else + { + $jo_data['rider'] = null; } // invoice items @@ -1960,7 +1990,7 @@ class APIController extends Controller implements LoggedController $jos = $cust->getJobOrders(); foreach ($jos as $jo) { - // TODO: use generateJobOrderData method + // NOTE: use generateJobOrderData method, maybe? $status = $jo->getStatus(); $jo_data = [