From 429dc99b292578d6f34a9e82974b2ab4dc3c88ae Mon Sep 17 00:00:00 2001 From: Kendrick Chan Date: Sun, 20 May 2018 22:45:41 +0800 Subject: [PATCH] Add cancel event and have mobile sendEvent send to all sessions of a job order #122 --- src/Controller/JobOrderController.php | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/Controller/JobOrderController.php b/src/Controller/JobOrderController.php index c515c345..f1be02b6 100644 --- a/src/Controller/JobOrderController.php +++ b/src/Controller/JobOrderController.php @@ -1364,15 +1364,20 @@ class JobOrderController extends BaseController protected function sendEvent(JobOrder $job_order, $payload) { - $session = $job_order->getCustomer()->getMobileSessions(); + $sessions = $job_order->getCustomer()->getMobileSessions(); if (count($session) == 0) return; - $phone_num = $session[0]->getPhoneNumber(); - $channel = 'motolite.control.' . $phone_num; $client = new MosquittoClient(); $client->connect('localhost', 1883); - $client->publish($channel, json_encode($payload)); + + foreach ($sessions as $sess) + { + $phone_num = $sess->getPhoneNumber(); + $channel = 'motolite.control.' . $phone_num; + $client->publish($channel, json_encode($payload)); + } + $client->disconnect(); } @@ -1783,6 +1788,13 @@ class JobOrderController extends BaseController // save $em->flush(); + // send mobile app event + $payload = [ + 'event' => 'cancelled', + 'jo_id' => $obj->getID(), + ]; + $this->sendEvent($obj, $payload); + // return successful response return $this->json([ 'success' => 'Job order has been cancelled!' -- 2.43.5