From e3a0e8e23c0cdffda0e546e5b67da6727d71c002 Mon Sep 17 00:00:00 2001 From: Kendrick Chan Date: Wed, 15 Aug 2018 12:59:57 +0800 Subject: [PATCH] Have hub reassign and rider reassign send mqtt events to rider and user app #162 --- src/Controller/JobOrderController.php | 38 ++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/src/Controller/JobOrderController.php b/src/Controller/JobOrderController.php index d76d41ca..cc2ab1ac 100644 --- a/src/Controller/JobOrderController.php +++ b/src/Controller/JobOrderController.php @@ -1489,7 +1489,7 @@ class JobOrderController extends BaseController return $this->render('job-order/form.html.twig', $params); } - public function openHubSubmit(Request $req, ValidatorInterface $validator, $id) + public function openHubSubmit(Request $req, ValidatorInterface $validator, MQTTClient $mclient, $id) { $this->denyAccessUnlessGranted('jo_open.list', null, 'No access.'); @@ -1522,7 +1522,17 @@ class JobOrderController extends BaseController } } - if (empty($error_array)) { + if (empty($error_array)) + { + // rider mqtt event + // NOTE: need to send this before saving because rider will be cleared + $rider_payload = [ + 'event' => 'cancelled', + 'reason' => 'Reassigned', + 'jo_id' => $obj->getID(), + ]; + $mclient->sendRiderEvent($obj, $rider_payload); + // coordinates $point = new Point($req->request->get('coord_lng'), $req->request->get('coord_lat')); @@ -1571,6 +1581,12 @@ class JobOrderController extends BaseController // validated! save the entity $em->flush(); + // user mqtt event + $payload = [ + 'event' => 'outlet_assign' + ]; + $mclient->sendEvent($obj, $payload); + // return successful response return $this->json([ 'success' => 'Changes have been saved!' @@ -1615,7 +1631,7 @@ class JobOrderController extends BaseController return $this->render('job-order/form.html.twig', $params); } - public function openRiderSubmit(Request $req, ValidatorInterface $validator, $id) + public function openRiderSubmit(Request $req, ValidatorInterface $validator, MQTTClient $mclient, $id) { $this->denyAccessUnlessGranted('jo_open.list', null, 'No access.'); @@ -1648,6 +1664,15 @@ class JobOrderController extends BaseController } if (empty($error_array)) { + // rider mqtt event + // NOTE: need to send this before saving because rider will be cleared + $rider_payload = [ + 'event' => 'cancelled', + 'reason' => 'Reassigned', + 'jo_id' => $obj->getID(), + ]; + $mclient->sendRiderEvent($obj, $rider_payload); + // coordinates $point = new Point($req->request->get('coord_lng'), $req->request->get('coord_lat')); @@ -1697,6 +1722,13 @@ class JobOrderController extends BaseController // validated! save the entity $em->flush(); + // send event to mobile app + $payload = [ + 'event' => 'driver_assigned' + ]; + $mclient->sendEvent($obj, $payload); + $mclient->sendRiderEvent($obj, $payload); + // return successful response return $this->json([ 'success' => 'Changes have been saved!'