From 42d086ff5d06b9f067eed38a346276e880a64569 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Mon, 22 Jun 2020 10:05:01 +0000 Subject: [PATCH] Add sending of mqtt event when JO is assigned to rider. #424 --- src/Controller/JobOrderController.php | 8 ++++---- .../JobOrderHandler/CMBJobOrderHandler.php | 20 ++++++++++++++++++- src/Service/JobOrderHandlerInterface.php | 2 +- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/Controller/JobOrderController.php b/src/Controller/JobOrderController.php index f23fc73c..cb84e113 100644 --- a/src/Controller/JobOrderController.php +++ b/src/Controller/JobOrderController.php @@ -867,14 +867,14 @@ class JobOrderController extends Controller return $this->render($template, $params); } - public function oneStepSubmit(Request $req, JobOrderHandlerInterface $jo_handler) + public function oneStepSubmit(Request $req, JobOrderHandlerInterface $jo_handler, MQTTClient $mclient) { $this->denyAccessUnlessGranted('jo_onestep.form', null, 'No access.'); // initialize error list $error_array = []; $id = -1; - $error_array = $jo_handler->processOneStepJobOrder($req, $id); + $error_array = $jo_handler->processOneStepJobOrder($req, $id, $mclient); // check if any errors were found if (!empty($error_array)) { @@ -913,12 +913,12 @@ class JobOrderController extends Controller return $this->render($template, $params); } - public function oneStepEditSubmit(Request $req, JobOrderHandlerInterface $jo_handler, $id) + public function oneStepEditSubmit(Request $req, JobOrderHandlerInterface $jo_handler, $id, MQTTClient $mclient) { $this->denyAccessUnlessGranted('jo_onestep.edit', null, 'No access.'); $error_array = []; - $error_array = $jo_handler->processOneStepJobOrder($req, $id); + $error_array = $jo_handler->processOneStepJobOrder($req, $id, $mclient); // check if any errors were found if (!empty($error_array)) { diff --git a/src/Service/JobOrderHandler/CMBJobOrderHandler.php b/src/Service/JobOrderHandler/CMBJobOrderHandler.php index 03f84e44..339f64cd 100644 --- a/src/Service/JobOrderHandler/CMBJobOrderHandler.php +++ b/src/Service/JobOrderHandler/CMBJobOrderHandler.php @@ -416,7 +416,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface return $error_array; } - public function processOneStepJobOrder(Request $req, $id) + public function processOneStepJobOrder(Request $req, $id, MQTTClient $mclient) { // initialize error list $error_array = []; @@ -424,11 +424,16 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $em = $this->em; $jo = $em->getRepository(JobOrder::class)->find($id); + $old_rider = null; if (empty($jo)) { // new job order $jo = new JobOrder(); } + else + { + $old_rider = $jo->getRider(); + } // check if lat and lng are provided if (empty($req->request->get('coord_lng')) || empty($req->request->get('coord_lat'))) { @@ -665,6 +670,19 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $em->persist($event); $em->flush(); + + // check if JO has been reassigned + if ($old_rider != $rider) + { + // TODO: refactor later + $channel = '/rider/' . $rider->getID() . '/events'; + $payload = [ + 'event' => 'new_jo', + 'jo_id' => $jo->getID(), + ]; + + $mclient->publish($channel, json_encode($payload)); + } } } diff --git a/src/Service/JobOrderHandlerInterface.php b/src/Service/JobOrderHandlerInterface.php index 590a0926..22320c18 100644 --- a/src/Service/JobOrderHandlerInterface.php +++ b/src/Service/JobOrderHandlerInterface.php @@ -25,7 +25,7 @@ interface JobOrderHandlerInterface public function generateJobOrder(Request $req, int $id); // process one step job order - public function processOneStepJobOrder(Request $req, int $id); + //public function processOneStepJobOrder(Request $req, int $id, MQTTClient $mclient); // dispatch job order public function dispatchJobOrder(Request $req, int $id, MQTTClient $mclient);