From a0ee7b32bcd5ff25380100864d26ef50fb8604d3 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Thu, 4 Jun 2020 03:32:05 +0000 Subject: [PATCH] Add setOdometer API call. Modify url routes for some calls for easier reading. #421 --- config/routes/cmb_rider_api.yaml | 25 +++++++++++-------- src/Controller/CMBRAPIController.php | 23 +++++++++++++++++ .../RiderAPIHandler/CMBRiderAPIHandler.php | 21 +++++++++++++++- 3 files changed, 58 insertions(+), 11 deletions(-) diff --git a/config/routes/cmb_rider_api.yaml b/config/routes/cmb_rider_api.yaml index 75f6261e..8ea54898 100644 --- a/config/routes/cmb_rider_api.yaml +++ b/config/routes/cmb_rider_api.yaml @@ -21,12 +21,12 @@ cmb_rapi_jo_get: methods: [GET] cmb_rapi_jo_accept: - path: /cmbrapi/accept + path: /cmbrapi/joaccept controller: App\Controller\CMBRAPIController::acceptJobOrder methods: [POST] cmb_rapi_jo_cancel: - path: /cmbrapi/cancel + path: /cmbrapi/jocancel controller: App\Controller\CMBRAPIController::cancelJobOrder methods: [POST] @@ -36,7 +36,7 @@ cmb_rapi_arrive: methods: [POST] cmb_rapi_payment: - path: /cmbrapi/payment + path: /cmbrapi/jopayment controller: App\Controller\CMBRAPIController::payment methods: [POST] @@ -66,17 +66,17 @@ cmb_rapi_available: methods: [POST] cmb_rapi_jo_history_view: - path: /cmbrapi/joborderhistory + path: /cmbrapi/johistory controller: App\Controller\CMBRAPIController::viewJobOrderHistory methods: [GET] cmb_rapi_assigned_jo_get: - path: /cmbrapi/assignedjoborders + path: /cmbrapi/assignedjos controller: App\Controller\CMBRAPIController::getAssignedJobOrders methods: [GET] cmb_rapi_jo_in_transit: - path: /cmbrapi/joborderintransit + path: /cmbrapi/jotransit controller: App\Controller\CMBRAPIController::setJobOrderInTransit methods: [POST] @@ -96,21 +96,26 @@ cmb_rapi_offline: methods: [POST] cmb_rapi_jo_start: - path: /cmbrapi/joborderstart + path: /cmbrapi/jostart controller: App\Controller\CMBRAPIController::startJobOrder methods: [POST] cmb_rapi_jo_complete: - path: /cmbrapi/jobordercomplete + path: /cmbrapi/jocomplete controller: App\Controller\CMBRAPIController::completeJobOrder methods: [POST] cmb_rapi_jo_set_active: - path: /cmbrapi/joborderactive + path: /cmbrapi/joactive controller: App\Controller\CMBRAPIController::setActiveJobOrder methods: [POST] cmb_rapi_jo_reject: - path: /cmbrapi/joborderreject + path: /cmbrapi/joreject controller: App\Controller\CMBRAPIController::rejectJobOrder methods: [POST] + +cmb_rapi_jo_odometer: + path: /cmbrapi/odometer + controller: App\Controller\CMBRAPIController::setOdometer + methods: [POST] diff --git a/src/Controller/CMBRAPIController.php b/src/Controller/CMBRAPIController.php index 3158eaba..d9286ad9 100644 --- a/src/Controller/CMBRAPIController.php +++ b/src/Controller/CMBRAPIController.php @@ -525,4 +525,27 @@ class CMBRAPIController extends Controller return $res->getReturnResponse(); } + public function setOdometer(Request $req, RiderAPIHandlerInterface $rapi_handler) + { + $res = new APIResult(); + + $data = $rapi_handler->setOdometer($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/Service/RiderAPIHandler/CMBRiderAPIHandler.php b/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php index 036e0419..4ef3557c 100644 --- a/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php +++ b/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php @@ -972,7 +972,7 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface // allow rider to change service, promo, battery and trade-in options $required_params = ['jo_id', 'stype_id', 'promo_id']; - $data = $this->checkActiveJO($req, $required_params, $jo); + $data = $this->checkJO($req, $required_params, $jo); if (isset($data['error'])) return $data; @@ -1287,6 +1287,25 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface return $data; } + public function setOdometer(Request $req) + { + $required_params = [ + 'jo_id', + 'odometer' + ]; + $data = $this->checkActiveJO($req, $required_params, $jo); + if (isset($data['error'])) + return $data; + + $odometer_reading = $req->request->get('odometer'); + + $jo->addMeta('odometer', $odometer_reading); + + $this->em->flush(); + + return $data; + } + protected function checkMissingParameters(Request $req, $params = []) { $missing = [];