From 79b19a61f6f84fa1a8261f9e25425fb9333896b9 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Tue, 2 Jun 2020 08:03:31 +0000 Subject: [PATCH] Add startJobOrder API call. Add RIDER_START event type. #421 --- config/routes/cmb_rider_api.yaml | 6 +++++ src/Controller/CMBRAPIController.php | 23 +++++++++++++++++++ src/Ramcar/CMBJOEventType.php | 2 ++ .../RiderAPIHandler/CMBRiderAPIHandler.php | 21 +++++++++++++++++ 4 files changed, 52 insertions(+) diff --git a/config/routes/cmb_rider_api.yaml b/config/routes/cmb_rider_api.yaml index 4ea959ed..8a6d6781 100644 --- a/config/routes/cmb_rider_api.yaml +++ b/config/routes/cmb_rider_api.yaml @@ -95,3 +95,9 @@ cmb_rapi_offline: controller: App\Controller\CMBRAPIController::goOffline methods: [POST] +cmb_rapi_jo_start: + path: /cmbrapi/joborderstart + controller: App\Controller\CMBRAPIController::startJobOrder + methods: [POST] + + diff --git a/src/Controller/CMBRAPIController.php b/src/Controller/CMBRAPIController.php index adfe89a2..807af382 100644 --- a/src/Controller/CMBRAPIController.php +++ b/src/Controller/CMBRAPIController.php @@ -437,4 +437,27 @@ class CMBRAPIController extends Controller return $res->getReturnResponse(); } + public function startJobOrder(Request $req, RiderAPIHandlerInterface $rapi_handler) + { + $res = new APIResult(); + + $data = $rapi_handler->startJobOrder($req); + + if (isset($data['error'])) + { + $message = $data['error']; + + $res->setError(true) + ->setErrorMessage($message); + } + else + { + $res->setData($data); + } + + // response + return $res->getReturnResponse(); + } + + } diff --git a/src/Ramcar/CMBJOEventType.php b/src/Ramcar/CMBJOEventType.php index ba8126ac..63d48610 100644 --- a/src/Ramcar/CMBJOEventType.php +++ b/src/Ramcar/CMBJOEventType.php @@ -14,6 +14,7 @@ class CMBJOEventType extends NameValue const RIDER_ACCEPT = 'accept'; const RIDER_IN_TRANSIT = 'rider_in_transit'; const RIDER_ARRIVE = 'arrive'; + const RIDER_START = 'rider_start'; const RIDER_EDIT = 'rider_edit'; const COLLECTION = [ @@ -27,6 +28,7 @@ class CMBJOEventType extends NameValue 'accept' => 'Rider Accept', 'rider_in_transit' => 'Rider in Transit', 'arrive' => 'Rider Arrive', + 'start' => 'Rider Start', 'rider_edit' => 'Rider Edit', ]; } diff --git a/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php b/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php index 39314fd9..d7cd6629 100644 --- a/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php +++ b/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php @@ -1255,6 +1255,27 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface return $data; } + public function startJobOrder(Request $req) + { + $required_params = ['jo_id']; + $data = $this->checkJO($req, $required_params, $jo); + if (isset($data['error'])) + return $data; + + // add event log + $rider = $this->session->getRider(); + $event = new JOEvent(); + $event->setDateHappen(new DateTime()) + ->setTypeID(CMBJOEventType::RIDER_START) + ->setJobOrder($jo) + ->setRider($rider); + $this->em->persist($event); + + $this->em->flush(); + + return $data; + } + protected function checkMissingParameters(Request $req, $params = []) { $missing = [];