From eebd1d93c473510400f9f336a945a662f064d43a Mon Sep 17 00:00:00 2001 From: Ramon Gutierrez Date: Thu, 8 Feb 2024 23:17:32 +0800 Subject: [PATCH] Fix battery info endpoint to work with warranty serials instead #783 --- src/Controller/CAPI/RiderAppController.php | 35 ++++++++++++---------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/src/Controller/CAPI/RiderAppController.php b/src/Controller/CAPI/RiderAppController.php index 945c4ec8..19a8cd7e 100644 --- a/src/Controller/CAPI/RiderAppController.php +++ b/src/Controller/CAPI/RiderAppController.php @@ -24,7 +24,8 @@ use App\Entity\RiderAPISession; use App\Entity\User; use App\Entity\ApiUser as APIUser; use App\Entity\JobOrder; - +use App\Entity\SAPBattery; +use App\Entity\WarrantySerial; use App\Service\RedisClientProvider; use App\Service\RiderCache; use App\Service\MQTTClient; @@ -1174,26 +1175,28 @@ class RiderAppController extends ApiController 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]); + $serial = $em->getRepository(WarrantySerial::class)->find($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(), - ]; + if (empty($serial)) { + return new APIResponse(false, 'Warranty serial number not found.'); } - $data = [ - 'batteries' => $batt_data, + $sap_battery = $em->getRepository(SAPBattery::class)->find($serial->getSKU()); + + if (empty($sap_battery)) { + return new APIResponse(false, 'No battery info found.'); + } + + $battery = [ + 'id' => $sap_battery->getID(), + 'brand' => $sap_battery->getBrand()->getName(), + 'size' => $sap_battery->getSize()->getName(), + 'container_size' => $sap_battery->getContainerSize()->getName(), ]; - return new APIResponse(true, 'Battery info found.', $data); + return new APIResponse(true, 'Battery info found.', [ + 'battery' => $battery, + ]); } public function updateJobOrder(Request $req, EntityManagerInterface $em, InvoiceGeneratorInterface $ic)