From ae46d64f5b3720ed42c68fc0b55302dfd50be562 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Thu, 1 Feb 2024 03:10:16 -0500 Subject: [PATCH] Add API call to return battery data given a serial. #783 --- config/routes/capi_rider.yaml | 7 +++- src/Controller/CAPI/RiderAppController.php | 40 ++++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/config/routes/capi_rider.yaml b/config/routes/capi_rider.yaml index 8fc40654..67c7fa64 100644 --- a/config/routes/capi_rider.yaml +++ b/config/routes/capi_rider.yaml @@ -99,4 +99,9 @@ capi_rider_jo_start: capi_rider_battery_sizes: path: /rider_api/battery_sizes controller: App\Controller\CAPI\RiderAppController::getBatterySizes - methods: [GET] \ No newline at end of file + methods: [GET] + +capi_rider_battery_info: + path: /rider_api/battery/{serial} + controller: App\Controller\CAPI\RiderAppController::getBatteryInfo + methods: [GET] diff --git a/src/Controller/CAPI/RiderAppController.php b/src/Controller/CAPI/RiderAppController.php index ea3128fd..513bd3c3 100644 --- a/src/Controller/CAPI/RiderAppController.php +++ b/src/Controller/CAPI/RiderAppController.php @@ -1126,6 +1126,46 @@ class RiderAppController extends ApiController return new APIResponse(true, 'Batteries found.', $data); } + public function getBatteryInfo(Request $req, $serial, EntityManagerInterface $em) + { + if (empty($serial)) + { + return new APIResponse(false, 'Missing parameter(s): serial'); + } + + // get capi user + $capi_user = $this->getUser(); + if ($capi_user == null) + return new APIResponse(false, 'User not found.'); + + // get rider id from capi user metadata + $rider = $this->getRiderFromCAPI($capi_user, $em); + if ($rider == null) + return new APIResponse(false, 'No rider found.'); + + // find battery given serial/sap_code and flag_active is true + $batts = $em->getRepository(Battery::class)->findBy(['flag_active' => true, 'sap_code' => $serial]); + + $batt_data = []; + foreach ($batts as $batt) + { + $batt_data[] = [ + 'id' => $batt->getID(), + 'model_id' => $batt->getModel()->getID(), + 'model_name' => $batt->getModel()->getName(), + 'size_id' => $batt->getSize()->getID(), + 'size_name' => $batt->getSize()->getName(), + 'selling_price' => $batt->getSellingPrice(), + ]; + } + + $data = [ + 'batteries' => $batt_data, + ]; + + return new APIResponse(true, 'Battery info found.', $data); + } + public function changeService(Request $req, EntityManagerInterface $em, InvoiceGeneratorInterface $ic) { // $this->debugRequest($req);