diff --git a/config/routes/capi_rider.yaml b/config/routes/capi_rider.yaml index 6ef2e92a..8fc40654 100644 --- a/config/routes/capi_rider.yaml +++ b/config/routes/capi_rider.yaml @@ -94,3 +94,9 @@ capi_rider_jo_start: path: /rider_api/start controller: App\Controller\CAPI\RiderAppController::startJobOrder methods: [POST] + +# trade-ins +capi_rider_battery_sizes: + path: /rider_api/battery_sizes + controller: App\Controller\CAPI\RiderAppController::getBatterySizes + methods: [GET] \ No newline at end of file diff --git a/src/Controller/CAPI/RiderAppController.php b/src/Controller/CAPI/RiderAppController.php index d29f6a04..ea3128fd 100644 --- a/src/Controller/CAPI/RiderAppController.php +++ b/src/Controller/CAPI/RiderAppController.php @@ -758,6 +758,33 @@ class RiderAppController extends ApiController return new APIResponse(true, 'Rider arrive at hub.', $data); } + public function getBatterySizes(Request $req, EntityManagerInterface $em) + { + // 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.'); + + // get sizes + $qb = $em->getRepository(BatterySize::class) + ->createQueryBuilder('bs'); + + $sizes = $qb->select('bs.id, bs.name') + ->orderBy('bs.name', 'asc') + ->getQuery() + ->getResult(); + + // response + return new APIResponse(true, '', [ + 'sizes' => $sizes, + ]); + } + public function payment(Request $req, EntityManagerInterface $em, JobOrderHandlerInterface $jo_handler, RisingTideGateway $rt, WarrantyHandler $wh, MQTTClient $mclient, MQTTClientApiv2 $mclientv2, FCMSender $fcmclient, TranslatorInterface $translator) {