diff --git a/src/Controller/CAPI/RiderController.php b/src/Controller/CAPI/RiderController.php index 4e4f3f86..d5ec5cc9 100644 --- a/src/Controller/CAPI/RiderController.php +++ b/src/Controller/CAPI/RiderController.php @@ -529,10 +529,86 @@ class RiderController extends APIController public function preHubArrive(Request $req, EntityManagerInterface $em) { + $required_params = []; + $missing = $this->checkMissingParameters($req, $required_params); + if (count($missing) > 0) + { + $params = implode(', ', $missing); + return new APIResponse(false, 'Missing parameter(s): ' . $params); + } + + // get capi user to link to rider api user + $capi_user_id = $this->getUser()->getID(); + + // check if capi user already has a rider api user + $rapi_session = $em->getRepository(RiderAPISession::class)->findOneBy(['capi_user_id' => $capi_user_id]); + + // are we logged in? + if (!$rapi_session->hasRider()) + return new APIResponse(false, 'No logged in rider.'); + + $rider = $rapi_session->getRider(); + + // get rider's current job order + $jo = $rider->getCurrentJobOrder(); + + // set delivery status + $jo->setDeliveryStatus(DeliveryStatus::RIDER_ARRIVE_HUB_PRE_JO); + + // create time stamp event for JO event + $event = new JOEvent(); + $event->setDateHappen(new DateTime()) + ->setTypeID(JOEventType::RIDER_ARRIVE_HUB_PRE_JO) + ->setJobOrder($jo) + ->setRider($rider); + + $em->persist($event); + $em->flush(); + + $data = []; + return new APIResponse(true, 'Rider arrive at hub pre jo.', $data); } public function preHubDepart(Request $req, EntityManagerInterface $em) { + $required_params = []; + $missing = $this->checkMissingParameters($req, $required_params); + if (count($missing) > 0) + { + $params = implode(', ', $missing); + return new APIResponse(false, 'Missing parameter(s): ' . $params); + } + + // get capi user to link to rider api user + $capi_user_id = $this->getUser()->getID(); + + // check if capi user already has a rider api user + $rapi_session = $em->getRepository(RiderAPISession::class)->findOneBy(['capi_user_id' => $capi_user_id]); + + // are we logged in? + if (!$rapi_session->hasRider()) + return new APIResponse(false, 'No logged in rider.'); + + $rider = $rapi_session->getRider(); + + // get rider's current job order + $jo = $rider->getCurrentJobOrder(); + + // set delivery status + $jo->setDeliveryStatus(DeliveryStatus::RIDER_DEPART_HUB_PRE_JO); + + // create time stamp event for JO event + $event = new JOEvent(); + $event->setDateHappen(new DateTime()) + ->setTypeID(JOEventType::RIDER_DEPART_HUB_PRE_JO) + ->setJobOrder($jo) + ->setRider($rider); + + $em->persist($event); + $em->flush(); + + $data = []; + return new APIResponse(true, 'Rider depart from hub pre jo.', $data); } public function startJobOrder(Request $req, EntityManagerInterface $em)