From 3abb6f0efb9760d2d895bdd872bea2acd1a8d830 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Mon, 22 Jun 2020 03:13:41 +0000 Subject: [PATCH] Add verifyJobOrder API call. #424 --- config/routes/cmb_rider_api.yaml | 5 +++ src/Controller/CMBRAPIController.php | 11 +++++++ .../RiderAPIHandler/CMBRiderAPIHandler.php | 32 +++++++++++++++++++ 3 files changed, 48 insertions(+) diff --git a/config/routes/cmb_rider_api.yaml b/config/routes/cmb_rider_api.yaml index 24b2e63d..93f65d1a 100644 --- a/config/routes/cmb_rider_api.yaml +++ b/config/routes/cmb_rider_api.yaml @@ -154,3 +154,8 @@ cmb_rapi_cancel_reasons: path: /cmbrapi/cancelreasons controller: App\Controller\CMBRAPIController::getCancelReasons methods: [GET] + +cmb_rapi_jo_verify: + path: /cmbrapi/joverify + controller: App\Controller\CMBRAPIController::verifyJobOrder + methods: [GET] diff --git a/src/Controller/CMBRAPIController.php b/src/Controller/CMBRAPIController.php index 99eabe6d..87ab9cc1 100644 --- a/src/Controller/CMBRAPIController.php +++ b/src/Controller/CMBRAPIController.php @@ -12,6 +12,8 @@ use App\Ramcar\NewAPIResult; use App\Service\RiderAPIHandlerInterface; // Rider API controller for CMB +// TODO: refactor the other functions to use generateResultFromHandler + class CMBRAPIController extends Controller { public function register(Request $req, RiderAPIHandlerInterface $rapi_handler) @@ -732,6 +734,15 @@ class CMBRAPIController extends Controller return $res->getReturnResponse(); } + public function verifyJobOrder(Request $req, RiderAPIHandlerInterface $rapi_handler) + { + $data = $rapi_handler->verifyJobOrder($req); + + $res = $this->generateResultFromHandler($data); + + return $res->getReturnResponse(); + } + protected function generateResultFromHandler($data) { $res = new NewAPIResult(); diff --git a/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php b/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php index 6f7b646a..ec508a32 100644 --- a/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php +++ b/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php @@ -2075,6 +2075,38 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface } + public function verifyJobOrder(Request $req) + { + $required_params = [ + 'jo_id' + ]; + $data = $this->checkJO($req, $required_params, $jo); + if (isset($data['error'])) + { + $data['title'] = 'Failed Verify Job Order'; + return $data; + } + + // check if JO status is not fulfilled and not cancelled + if (($jo->getStatus() == JOStatus::FULFILLED) || + ($jo->getStatus() == JOStatus::CANCELLED)) + { + $data = [ + 'title' => 'Failed Verify Job Order', + 'error' => 'Job order has been fulfilled or cancelled.' + ]; + return $data; + } + + $jo_data = $this->formatJobOrderData($req, $jo); + + $data = [ + 'job_order' => $jo_data + ]; + + return $data; + } + protected function checkMissingParameters(Request $req, $params = []) { $missing = [];