Add fields to get jo info call in mobile api #593

This commit is contained in:
Kendrick Chan 2021-06-30 13:21:21 +08:00
parent 6daaa4fd4a
commit 83d99953aa

View file

@ -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,14 +1873,22 @@ class APIController extends Controller implements LoggedController
return $res->getReturnResponse();
}
protected function generateJobOrderData($jo)
protected function generateJobOrderData($jo, $rt)
{
$status = $jo->getStatus();
$dest = $jo->getCoordinates();
$jo_data = [
'id' => $jo->getID(),
'date_create' => $jo->getDateCreate()->format('M d, Y'),
'service_type' => $jo->getServiceType(),
'destination' => [
'long' => $dest->getLongitude(),
'lat' => $dest->getLatitude(),
],
'delivery_address' => $jo->getDeliveryAddress(),
'delivery_instructions' => $jo->getDeliveryInstructions(),
'status' => $status,
];
@ -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 = [