Add available, postHubArrive, postHubDepart. #617
This commit is contained in:
parent
bbe0a804ad
commit
bbee3c4b96
1 changed files with 158 additions and 8 deletions
|
|
@ -712,6 +712,50 @@ class RiderController extends APIController
|
||||||
|
|
||||||
public function hubArrive(Request $req, EntityManagerInterface $em)
|
public function hubArrive(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);
|
||||||
|
|
||||||
|
$timestamp_event = new JOEvent();
|
||||||
|
$timestamp_event->setDateHappen(new DateTime())
|
||||||
|
->setTypeID(JOEventType::RIDER_ARRIVE_HUB)
|
||||||
|
->setJobOrder($jo)
|
||||||
|
->setRider($rider);
|
||||||
|
|
||||||
|
$em->persist($timestamp_event);
|
||||||
|
|
||||||
|
// tag rider as available
|
||||||
|
$rider->setAvailable(true);
|
||||||
|
|
||||||
|
// set rider's current job order to null
|
||||||
|
$rider->setCurrentJobOrder();
|
||||||
|
|
||||||
|
$em->flush();
|
||||||
|
|
||||||
|
$data = [];
|
||||||
|
return new APIResponse(true, 'Rider arrive at hub.', $data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function payment(Request $req, EntityManagerInterface $em, JobOrderHandlerInterface $jo_handler,
|
public function payment(Request $req, EntityManagerInterface $em, JobOrderHandlerInterface $jo_handler,
|
||||||
|
|
@ -844,8 +888,122 @@ class RiderController extends APIController
|
||||||
return new APIResponse(true, 'Job order paid and fulfilled.', $data);
|
return new APIResponse(true, 'Job order paid and fulfilled.', $data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function postHubArrive(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_POST_JO);
|
||||||
|
|
||||||
|
// create time stamp event for JO event
|
||||||
|
$event = new JOEvent();
|
||||||
|
$event->setDateHappen(new DateTime())
|
||||||
|
->setTypeID(JOEventType::RIDER_ARRIVE_HUB_POST_JO)
|
||||||
|
->setJobOrder($jo)
|
||||||
|
->setRider($rider);
|
||||||
|
|
||||||
|
$em->persist($event);
|
||||||
|
$em->flush();
|
||||||
|
|
||||||
|
$data = [];
|
||||||
|
return new APIResponse(true, 'Rider arrive hub post jo.', $data);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function postHubDepart(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_POST_JO);
|
||||||
|
|
||||||
|
// create time stamp event for JO event
|
||||||
|
$event = new JOEvent();
|
||||||
|
$event->setDateHappen(new DateTime())
|
||||||
|
->setTypeID(JOEventType::RIDER_DEPART_HUB_POST_JO)
|
||||||
|
->setJobOrder($jo)
|
||||||
|
->setRider($rider);
|
||||||
|
|
||||||
|
$em->persist($event);
|
||||||
|
$em->flush();
|
||||||
|
|
||||||
|
$data = [];
|
||||||
|
return new APIResponse(true, 'Rider depart hub post jo.', $data);
|
||||||
|
}
|
||||||
|
|
||||||
public function available(Request $req, EntityManagerInterface $em)
|
public function available(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();
|
||||||
|
|
||||||
|
$rider->setAvailable(true);
|
||||||
|
|
||||||
|
// set rider's current job order to null
|
||||||
|
$rider->setCurrentJobOrder();
|
||||||
|
|
||||||
|
$em->flush();
|
||||||
|
|
||||||
|
$data = [];
|
||||||
|
return new APIResponse(true, 'Rider available.', $data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPromos(Request $req, EntityManagerInterface $em)
|
public function getPromos(Request $req, EntityManagerInterface $em)
|
||||||
|
|
@ -860,14 +1018,6 @@ class RiderController extends APIController
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public function postHubArrive(Request $req, EntityManagerInterface $em)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public function postHubDepart(Request $req, EntityManagerInterface $em)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function checkMissingParameters(Request $req, $params = [])
|
protected function checkMissingParameters(Request $req, $params = [])
|
||||||
{
|
{
|
||||||
$missing = [];
|
$missing = [];
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue