Add new API calls. #612
This commit is contained in:
parent
1a72f5c95a
commit
973c56ae85
3 changed files with 254 additions and 11 deletions
|
|
@ -64,3 +64,34 @@ rapi_available:
|
||||||
path: /rapi/available
|
path: /rapi/available
|
||||||
controller: App\Controller\RAPIController::available
|
controller: App\Controller\RAPIController::available
|
||||||
methods: [POST]
|
methods: [POST]
|
||||||
|
|
||||||
|
rapi_hub_depart:
|
||||||
|
path: /rapi/hub_depart
|
||||||
|
controller: App\Controller\RAPIController::hubDepart
|
||||||
|
methods: [POST]
|
||||||
|
|
||||||
|
rapi_pre_hub_depart:
|
||||||
|
path: /rapi/pre_hub_depart
|
||||||
|
controller: App\Controller\RAPIController::preHubDepart
|
||||||
|
methods: [POST]
|
||||||
|
|
||||||
|
rapi_pre_hub_arrive:
|
||||||
|
path: /rapi/pre_hub_arrive
|
||||||
|
controller: App\Controller\RAPIController::preHubArrive
|
||||||
|
methods: [POST]
|
||||||
|
|
||||||
|
rapi_post_hub_depart:
|
||||||
|
path: /rapi/post_hub_depart
|
||||||
|
controller: App\Controller\RAPIController::postHubDepart
|
||||||
|
methods: [POST]
|
||||||
|
|
||||||
|
rapi_post_hub_arrive:
|
||||||
|
path: /rapi/post_hub_arrive
|
||||||
|
controller: App\Controller\RAPIController::postHubArrive
|
||||||
|
methods: [POST]
|
||||||
|
|
||||||
|
rapi_jo_start:
|
||||||
|
path: /rapi/start
|
||||||
|
controller: App\Controller\RAPIController::startJobOrder
|
||||||
|
methods: [POST]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,14 @@ class JOEventType extends NameValue
|
||||||
const RIDER_ACCEPT = 'accept';
|
const RIDER_ACCEPT = 'accept';
|
||||||
const RIDER_ARRIVE = 'arrive';
|
const RIDER_ARRIVE = 'arrive';
|
||||||
const RIDER_EDIT = 'rider_edit';
|
const RIDER_EDIT = 'rider_edit';
|
||||||
|
const RIDER_DEPART_HUB = 'rider_depart_hub';
|
||||||
|
const RIDER_ARRIVE_HUB_PRE_JO = 'rider_arrive_hub_pre_jo';
|
||||||
|
const RIDER_DEPART_HUB_PRE_JO = 'rider_depart_hub_pre_jo';
|
||||||
|
const RIDER_START = 'rider_start';
|
||||||
|
const RIDER_END = 'rider_end';
|
||||||
|
const RIDER_ARRIVE_HUB_POST_JO = 'rider_arrive_hub_post_jo';
|
||||||
|
const RIDER_DEPART_HUB_POST_JO = 'rider_depart_hub_post_jo';
|
||||||
|
const RIDER_ARRIVE_HUB = 'rider_arrive_hub';
|
||||||
|
|
||||||
const COLLECTION = [
|
const COLLECTION = [
|
||||||
'create' => 'Created',
|
'create' => 'Created',
|
||||||
|
|
|
||||||
|
|
@ -544,8 +544,20 @@ class ResqRiderAPIHandler implements RiderAPIHandlerInterface
|
||||||
->setTypeID(JOEventType::FULFILL)
|
->setTypeID(JOEventType::FULFILL)
|
||||||
->setJobOrder($jo)
|
->setJobOrder($jo)
|
||||||
->setRider($rider);
|
->setRider($rider);
|
||||||
$this->em->persist($event);
|
|
||||||
|
|
||||||
|
$timestamp_event = new JOEvent();
|
||||||
|
$timestamp_event->setDateHappen(new DateTime())
|
||||||
|
->setTypeID(JOEventType::RIDER_END)
|
||||||
|
->setJobOrder($jo)
|
||||||
|
->setRider($rider);
|
||||||
|
|
||||||
|
$this->em->persist($event);
|
||||||
|
$this->em->persist($timestamp_event);
|
||||||
|
|
||||||
|
// NOTE: fix for the rider being assigned to other JO
|
||||||
|
// while on another JO.
|
||||||
|
// TODO: comment this out. Rider needs to be set to unavailable
|
||||||
|
// when rider accepts the JO
|
||||||
// tag rider as unavailable
|
// tag rider as unavailable
|
||||||
$rider->setAvailable(false);
|
$rider->setAvailable(false);
|
||||||
|
|
||||||
|
|
@ -845,6 +857,198 @@ class ResqRiderAPIHandler implements RiderAPIHandlerInterface
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function hubDepart(Request $req)
|
||||||
|
{
|
||||||
|
$required_params = [
|
||||||
|
'jo_id'
|
||||||
|
];
|
||||||
|
$data = $this->checkParamsAndKey($req, $required_params);
|
||||||
|
if (isset($data['error']))
|
||||||
|
return $data;
|
||||||
|
|
||||||
|
// find job order.
|
||||||
|
// NOTE: Not using getActiveJobOrder since unsure if it is really being set
|
||||||
|
$jo_id = $req->request->get('jo_id');
|
||||||
|
$jo = $this->em->getRepository(JobOrder::class)->find($jo_id);
|
||||||
|
if ($jo == null)
|
||||||
|
{
|
||||||
|
$data = [
|
||||||
|
'error' => 'No job order found.'
|
||||||
|
];
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
// create time stamp event for JO event
|
||||||
|
$rider = $this->session->getRider();
|
||||||
|
$event = new JOEvent();
|
||||||
|
$event->setDateHappen(new DateTime())
|
||||||
|
->setTypeID(JOEventType::RIDER_DEPART_HUB)
|
||||||
|
->setJobOrder($jo)
|
||||||
|
->setRider($rider);
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function preHubArrive(Request $req)
|
||||||
|
{
|
||||||
|
$required_params = [
|
||||||
|
'jo_id'
|
||||||
|
];
|
||||||
|
$data = $this->checkParamsAndKey($req, $required_params);
|
||||||
|
if (isset($data['error']))
|
||||||
|
return $data;
|
||||||
|
|
||||||
|
// find job order.
|
||||||
|
// NOTE: Not using getActiveJobOrder since unsure if it is really being set
|
||||||
|
$jo_id = $req->request->get('jo_id');
|
||||||
|
$jo = $this->em->getRepository(JobOrder::class)->find($jo_id);
|
||||||
|
if ($jo == null)
|
||||||
|
{
|
||||||
|
$data = [
|
||||||
|
'error' => 'No job order found.'
|
||||||
|
];
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
// create time stamp event for JO event
|
||||||
|
$rider = $this->session->getRider();
|
||||||
|
$event = new JOEvent();
|
||||||
|
$event->setDateHappen(new DateTime())
|
||||||
|
->setTypeID(JOEventType::RIDER_ARRIVE_HUB_PRE_JO)
|
||||||
|
->setJobOrder($jo)
|
||||||
|
->setRider($rider);
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function preHubDepart(Request $req)
|
||||||
|
{
|
||||||
|
$required_params = [
|
||||||
|
'jo_id'
|
||||||
|
];
|
||||||
|
$data = $this->checkParamsAndKey($req, $required_params);
|
||||||
|
if (isset($data['error']))
|
||||||
|
return $data;
|
||||||
|
|
||||||
|
// find job order.
|
||||||
|
// NOTE: Not using getActiveJobOrder since unsure if it is really being set
|
||||||
|
$jo_id = $req->request->get('jo_id');
|
||||||
|
$jo = $this->em->getRepository(JobOrder::class)->find($jo_id);
|
||||||
|
if ($jo == null)
|
||||||
|
{
|
||||||
|
$data = [
|
||||||
|
'error' => 'No job order found.'
|
||||||
|
];
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
// create time stamp event for JO event
|
||||||
|
$rider = $this->session->getRider();
|
||||||
|
$event = new JOEvent();
|
||||||
|
$event->setDateHappen(new DateTime())
|
||||||
|
->setTypeID(JOEventType::RIDER_DEPART_HUB_PRE_JO)
|
||||||
|
->setJobOrder($jo)
|
||||||
|
->setRider($rider);
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function startJobOrder(Request $req)
|
||||||
|
{
|
||||||
|
$required_params = [
|
||||||
|
'jo_id'
|
||||||
|
];
|
||||||
|
$data = $this->checkParamsAndKey($req, $required_params);
|
||||||
|
if (isset($data['error']))
|
||||||
|
return $data;
|
||||||
|
|
||||||
|
// find job order.
|
||||||
|
// NOTE: Not using getActiveJobOrder since unsure if it is really being set
|
||||||
|
$jo_id = $req->request->get('jo_id');
|
||||||
|
$jo = $this->em->getRepository(JobOrder::class)->find($jo_id);
|
||||||
|
if ($jo == null)
|
||||||
|
{
|
||||||
|
$data = [
|
||||||
|
'error' => 'No job order found.'
|
||||||
|
];
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
// create time stamp event for JO event
|
||||||
|
$rider = $this->session->getRider();
|
||||||
|
$event = new JOEvent();
|
||||||
|
$event->setDateHappen(new DateTime())
|
||||||
|
->setTypeID(JOEventType::RIDER_START)
|
||||||
|
->setJobOrder($jo)
|
||||||
|
->setRider($rider);
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function postHubArrive(Request $req)
|
||||||
|
{
|
||||||
|
$required_params = [
|
||||||
|
'jo_id'
|
||||||
|
];
|
||||||
|
$data = $this->checkParamsAndKey($req, $required_params);
|
||||||
|
if (isset($data['error']))
|
||||||
|
return $data;
|
||||||
|
|
||||||
|
// find job order.
|
||||||
|
// NOTE: Not using getActiveJobOrder since unsure if it is really being set
|
||||||
|
$jo_id = $req->request->get('jo_id');
|
||||||
|
$jo = $this->em->getRepository(JobOrder::class)->find($jo_id);
|
||||||
|
if ($jo == null)
|
||||||
|
{
|
||||||
|
$data = [
|
||||||
|
'error' => 'No job order found.'
|
||||||
|
];
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
// create time stamp event for JO event
|
||||||
|
$rider = $this->session->getRider();
|
||||||
|
$event = new JOEvent();
|
||||||
|
$event->setDateHappen(new DateTime())
|
||||||
|
->setTypeID(JOEventType::RIDER_ARRIVE_HUB_POST_JO)
|
||||||
|
->setJobOrder($jo)
|
||||||
|
->setRider($rider);
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function postHubDepart(Request $req)
|
||||||
|
{
|
||||||
|
$required_params = [
|
||||||
|
'jo_id'
|
||||||
|
];
|
||||||
|
$data = $this->checkParamsAndKey($req, $required_params);
|
||||||
|
if (isset($data['error']))
|
||||||
|
return $data;
|
||||||
|
|
||||||
|
// find job order.
|
||||||
|
// NOTE: Not using getActiveJobOrder since unsure if it is really being set
|
||||||
|
$jo_id = $req->request->get('jo_id');
|
||||||
|
$jo = $this->em->getRepository(JobOrder::class)->find($jo_id);
|
||||||
|
if ($jo == null)
|
||||||
|
{
|
||||||
|
$data = [
|
||||||
|
'error' => 'No job order found.'
|
||||||
|
];
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
// create time stamp event for JO event
|
||||||
|
$rider = $this->session->getRider();
|
||||||
|
$event = new JOEvent();
|
||||||
|
$event->setDateHappen(new DateTime())
|
||||||
|
->setTypeID(JOEventType::RIDER_DEPART_HUB_POST_JO)
|
||||||
|
->setJobOrder($jo)
|
||||||
|
->setRider($rider);
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
protected function checkMissingParameters(Request $req, $params = [])
|
protected function checkMissingParameters(Request $req, $params = [])
|
||||||
{
|
{
|
||||||
$missing = [];
|
$missing = [];
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue