Add rider current job order field. #612
This commit is contained in:
parent
0a6985f6b0
commit
d78a5ebf80
3 changed files with 189 additions and 87 deletions
|
|
@ -323,4 +323,113 @@ class RAPIController extends Controller
|
||||||
return $res->getReturnResponse();
|
return $res->getReturnResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function preHubArrive(Request $req, RiderAPIHandlerInterface $rapi_handler)
|
||||||
|
{
|
||||||
|
$res = new APIResult();
|
||||||
|
|
||||||
|
$data = $rapi_handler->preHubArrive($req);
|
||||||
|
|
||||||
|
if (isset($data['error']))
|
||||||
|
{
|
||||||
|
$message = $data['error'];
|
||||||
|
|
||||||
|
$res->setError(true)
|
||||||
|
->setErrorMessage($message);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$res->setData($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
// response
|
||||||
|
return $res->getReturnResponse();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function preHubDepart(Request $req, RiderAPIHandlerInterface $rapi_handler)
|
||||||
|
{
|
||||||
|
$res = new APIResult();
|
||||||
|
|
||||||
|
$data = $rapi_handler->preHubDepart($req);
|
||||||
|
|
||||||
|
if (isset($data['error']))
|
||||||
|
{
|
||||||
|
$message = $data['error'];
|
||||||
|
|
||||||
|
$res->setError(true)
|
||||||
|
->setErrorMessage($message);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$res->setData($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
// response
|
||||||
|
return $res->getReturnResponse();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function postHubArrive(Request $req, RiderAPIHandlerInterface $rapi_handler)
|
||||||
|
{
|
||||||
|
$res = new APIResult();
|
||||||
|
|
||||||
|
$data = $rapi_handler->postHubArrive($req);
|
||||||
|
|
||||||
|
if (isset($data['error']))
|
||||||
|
{
|
||||||
|
$message = $data['error'];
|
||||||
|
|
||||||
|
$res->setError(true)
|
||||||
|
->setErrorMessage($message);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$res->setData($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
// response
|
||||||
|
return $res->getReturnResponse();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function postHubDepart(Request $req, RiderAPIHandlerInterface $rapi_handler)
|
||||||
|
{
|
||||||
|
$res = new APIResult();
|
||||||
|
|
||||||
|
$data = $rapi_handler->postHubDepart($req);
|
||||||
|
|
||||||
|
if (isset($data['error']))
|
||||||
|
{
|
||||||
|
$message = $data['error'];
|
||||||
|
|
||||||
|
$res->setError(true)
|
||||||
|
->setErrorMessage($message);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$res->setData($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
// response
|
||||||
|
return $res->getReturnResponse();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function startJobOrder(Request $req, RiderAPIHandlerInterface $rapi_handler)
|
||||||
|
{
|
||||||
|
$res = new APIResult();
|
||||||
|
|
||||||
|
$data = $rapi_handler->startJobOrder($req);
|
||||||
|
|
||||||
|
if (isset($data['error']))
|
||||||
|
{
|
||||||
|
$message = $data['error'];
|
||||||
|
|
||||||
|
$res->setError(true)
|
||||||
|
->setErrorMessage($message);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$res->setData($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
// response
|
||||||
|
return $res->getReturnResponse();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -120,6 +120,15 @@ class Rider
|
||||||
*/
|
*/
|
||||||
protected $sessions;
|
protected $sessions;
|
||||||
|
|
||||||
|
// current job order
|
||||||
|
// NOTE: for forgotten reasons, we don't set active_job_order.
|
||||||
|
// but we now need rider's current JO for the time stamp events
|
||||||
|
/**
|
||||||
|
* @ORM\OneToOne(targetEntity="JobOrder")
|
||||||
|
* @ORM\JoinColumn(name="current_jo_id", referencedColumnName="id")
|
||||||
|
*/
|
||||||
|
protected $current_job_order;
|
||||||
|
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
$this->job_orders = new ArrayCollection();
|
$this->job_orders = new ArrayCollection();
|
||||||
|
|
@ -132,6 +141,7 @@ class Rider
|
||||||
$this->password = '';
|
$this->password = '';
|
||||||
|
|
||||||
$this->active_job_order = null;
|
$this->active_job_order = null;
|
||||||
|
$this->current_job_order = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getID()
|
public function getID()
|
||||||
|
|
@ -371,4 +381,15 @@ class Rider
|
||||||
$map_label = $this->first_name .' ' . $this->last_name;
|
$map_label = $this->first_name .' ' . $this->last_name;
|
||||||
return $map_label;
|
return $map_label;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function setCurrentJobOrder(JobOrder $jo = null)
|
||||||
|
{
|
||||||
|
$this->current_job_order = $jo;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getCurrentJobOrder()
|
||||||
|
{
|
||||||
|
return $this->current_job_order;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -409,8 +409,15 @@ class ResqRiderAPIHandler implements RiderAPIHandlerInterface
|
||||||
|
|
||||||
// TODO: send mqtt event (?)
|
// TODO: send mqtt event (?)
|
||||||
|
|
||||||
// add event log
|
|
||||||
$rider = $this->session->getRider();
|
$rider = $this->session->getRider();
|
||||||
|
|
||||||
|
// set rider's current job order
|
||||||
|
$rider->setCurrentJobOrder($jo);
|
||||||
|
|
||||||
|
// set rider to unavailable
|
||||||
|
$rider->setAvailable(false);
|
||||||
|
|
||||||
|
// add event log
|
||||||
$event = new JOEvent();
|
$event = new JOEvent();
|
||||||
$event->setDateHappen(new DateTime())
|
$event->setDateHappen(new DateTime())
|
||||||
->setTypeID(JOEventType::RIDER_ACCEPT)
|
->setTypeID(JOEventType::RIDER_ACCEPT)
|
||||||
|
|
@ -434,8 +441,11 @@ class ResqRiderAPIHandler implements RiderAPIHandlerInterface
|
||||||
// requeue it, instead of cancelling it
|
// requeue it, instead of cancelling it
|
||||||
$jo->requeue();
|
$jo->requeue();
|
||||||
|
|
||||||
// add event log
|
|
||||||
$rider = $this->session->getRider();
|
$rider = $this->session->getRider();
|
||||||
|
// set rider's current job order to null
|
||||||
|
$rider->setCurrentJobOrder();
|
||||||
|
|
||||||
|
// add event log
|
||||||
$event = new JOEvent();
|
$event = new JOEvent();
|
||||||
$event->setDateHappen(new DateTime())
|
$event->setDateHappen(new DateTime())
|
||||||
->setTypeID(JOEventType::REQUEUE)
|
->setTypeID(JOEventType::REQUEUE)
|
||||||
|
|
@ -513,10 +523,26 @@ class ResqRiderAPIHandler implements RiderAPIHandlerInterface
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$rider = $this->session->getRider();
|
||||||
|
|
||||||
|
// get rider's current job order
|
||||||
|
$jo = $rider->getCurrentJobOrder();
|
||||||
|
|
||||||
|
$timestamp_event = new JOEvent();
|
||||||
|
$timestamp_event->setDateHappen(new DateTime())
|
||||||
|
->setTypeID(JOEventType::RIDER_ARRIVE_HUB)
|
||||||
|
->setJobOrder($jo)
|
||||||
|
->setRider($rider);
|
||||||
|
|
||||||
|
$this->em->persist($timestamp_event);
|
||||||
|
|
||||||
// tag rider as available
|
// tag rider as available
|
||||||
$rider = $this->session->getRider();
|
$rider = $this->session->getRider();
|
||||||
$rider->setAvailable(true);
|
$rider->setAvailable(true);
|
||||||
|
|
||||||
|
// set rider's current job order to null
|
||||||
|
$rider->setCurrentJobOrder();
|
||||||
|
|
||||||
$this->em->flush();
|
$this->em->flush();
|
||||||
|
|
||||||
return $data;
|
return $data;
|
||||||
|
|
@ -860,24 +886,15 @@ class ResqRiderAPIHandler implements RiderAPIHandlerInterface
|
||||||
|
|
||||||
public function hubDepart(Request $req)
|
public function hubDepart(Request $req)
|
||||||
{
|
{
|
||||||
$required_params = [
|
$required_params = [];
|
||||||
'jo_id'
|
|
||||||
];
|
|
||||||
$data = $this->checkParamsAndKey($req, $required_params);
|
$data = $this->checkParamsAndKey($req, $required_params);
|
||||||
if (isset($data['error']))
|
if (isset($data['error']))
|
||||||
return $data;
|
return $data;
|
||||||
|
|
||||||
// find job order.
|
$rider = $this->session->getRider();
|
||||||
// NOTE: Not using getActiveJobOrder since unsure if it is really being set
|
|
||||||
$jo_id = $req->request->get('jo_id');
|
// get rider's current job order
|
||||||
$jo = $this->em->getRepository(JobOrder::class)->find($jo_id);
|
$jo = $rider->getCurrentJobOrder();
|
||||||
if ($jo == null)
|
|
||||||
{
|
|
||||||
$data = [
|
|
||||||
'error' => 'No job order found.'
|
|
||||||
];
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
// create time stamp event for JO event
|
// create time stamp event for JO event
|
||||||
$rider = $this->session->getRider();
|
$rider = $this->session->getRider();
|
||||||
|
|
@ -895,24 +912,15 @@ class ResqRiderAPIHandler implements RiderAPIHandlerInterface
|
||||||
|
|
||||||
public function preHubArrive(Request $req)
|
public function preHubArrive(Request $req)
|
||||||
{
|
{
|
||||||
$required_params = [
|
$required_params = [];
|
||||||
'jo_id'
|
|
||||||
];
|
|
||||||
$data = $this->checkParamsAndKey($req, $required_params);
|
$data = $this->checkParamsAndKey($req, $required_params);
|
||||||
if (isset($data['error']))
|
if (isset($data['error']))
|
||||||
return $data;
|
return $data;
|
||||||
|
|
||||||
// find job order.
|
$rider = $this->session->getRider();
|
||||||
// NOTE: Not using getActiveJobOrder since unsure if it is really being set
|
|
||||||
$jo_id = $req->request->get('jo_id');
|
// get rider's current job order
|
||||||
$jo = $this->em->getRepository(JobOrder::class)->find($jo_id);
|
$jo = $rider->getCurrentJobOrder();
|
||||||
if ($jo == null)
|
|
||||||
{
|
|
||||||
$data = [
|
|
||||||
'error' => 'No job order found.'
|
|
||||||
];
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
// create time stamp event for JO event
|
// create time stamp event for JO event
|
||||||
$rider = $this->session->getRider();
|
$rider = $this->session->getRider();
|
||||||
|
|
@ -930,25 +938,16 @@ class ResqRiderAPIHandler implements RiderAPIHandlerInterface
|
||||||
|
|
||||||
public function preHubDepart(Request $req)
|
public function preHubDepart(Request $req)
|
||||||
{
|
{
|
||||||
$required_params = [
|
$required_params = [];
|
||||||
'jo_id'
|
|
||||||
];
|
|
||||||
$data = $this->checkParamsAndKey($req, $required_params);
|
$data = $this->checkParamsAndKey($req, $required_params);
|
||||||
if (isset($data['error']))
|
if (isset($data['error']))
|
||||||
return $data;
|
return $data;
|
||||||
|
|
||||||
// find job order.
|
$rider = $this->session->getRider();
|
||||||
// NOTE: Not using getActiveJobOrder since unsure if it is really being set
|
|
||||||
$jo_id = $req->request->get('jo_id');
|
// get rider's current job order
|
||||||
$jo = $this->em->getRepository(JobOrder::class)->find($jo_id);
|
$jo = $rider->getCurrentJobOrder();
|
||||||
if ($jo == null)
|
|
||||||
{
|
|
||||||
$data = [
|
|
||||||
'error' => 'No job order found.'
|
|
||||||
];
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
// create time stamp event for JO event
|
// create time stamp event for JO event
|
||||||
$rider = $this->session->getRider();
|
$rider = $this->session->getRider();
|
||||||
$event = new JOEvent();
|
$event = new JOEvent();
|
||||||
|
|
@ -965,24 +964,15 @@ class ResqRiderAPIHandler implements RiderAPIHandlerInterface
|
||||||
|
|
||||||
public function startJobOrder(Request $req)
|
public function startJobOrder(Request $req)
|
||||||
{
|
{
|
||||||
$required_params = [
|
$required_params = [];
|
||||||
'jo_id'
|
|
||||||
];
|
|
||||||
$data = $this->checkParamsAndKey($req, $required_params);
|
$data = $this->checkParamsAndKey($req, $required_params);
|
||||||
if (isset($data['error']))
|
if (isset($data['error']))
|
||||||
return $data;
|
return $data;
|
||||||
|
|
||||||
// find job order.
|
$rider = $this->session->getRider();
|
||||||
// NOTE: Not using getActiveJobOrder since unsure if it is really being set
|
|
||||||
$jo_id = $req->request->get('jo_id');
|
// get rider's current job order
|
||||||
$jo = $this->em->getRepository(JobOrder::class)->find($jo_id);
|
$jo = $rider->getCurrentJobOrder();
|
||||||
if ($jo == null)
|
|
||||||
{
|
|
||||||
$data = [
|
|
||||||
'error' => 'No job order found.'
|
|
||||||
];
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
// create time stamp event for JO event
|
// create time stamp event for JO event
|
||||||
$rider = $this->session->getRider();
|
$rider = $this->session->getRider();
|
||||||
|
|
@ -1000,24 +990,15 @@ class ResqRiderAPIHandler implements RiderAPIHandlerInterface
|
||||||
|
|
||||||
public function postHubArrive(Request $req)
|
public function postHubArrive(Request $req)
|
||||||
{
|
{
|
||||||
$required_params = [
|
$required_params = [];
|
||||||
'jo_id'
|
|
||||||
];
|
|
||||||
$data = $this->checkParamsAndKey($req, $required_params);
|
$data = $this->checkParamsAndKey($req, $required_params);
|
||||||
if (isset($data['error']))
|
if (isset($data['error']))
|
||||||
return $data;
|
return $data;
|
||||||
|
|
||||||
// find job order.
|
$rider = $this->session->getRider();
|
||||||
// NOTE: Not using getActiveJobOrder since unsure if it is really being set
|
|
||||||
$jo_id = $req->request->get('jo_id');
|
// get rider's current job order
|
||||||
$jo = $this->em->getRepository(JobOrder::class)->find($jo_id);
|
$jo = $rider->getCurrentJobOrder();
|
||||||
if ($jo == null)
|
|
||||||
{
|
|
||||||
$data = [
|
|
||||||
'error' => 'No job order found.'
|
|
||||||
];
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
// create time stamp event for JO event
|
// create time stamp event for JO event
|
||||||
$rider = $this->session->getRider();
|
$rider = $this->session->getRider();
|
||||||
|
|
@ -1035,24 +1016,15 @@ class ResqRiderAPIHandler implements RiderAPIHandlerInterface
|
||||||
|
|
||||||
public function postHubDepart(Request $req)
|
public function postHubDepart(Request $req)
|
||||||
{
|
{
|
||||||
$required_params = [
|
$required_params = [];
|
||||||
'jo_id'
|
|
||||||
];
|
|
||||||
$data = $this->checkParamsAndKey($req, $required_params);
|
$data = $this->checkParamsAndKey($req, $required_params);
|
||||||
if (isset($data['error']))
|
if (isset($data['error']))
|
||||||
return $data;
|
return $data;
|
||||||
|
|
||||||
// find job order.
|
$rider = $this->session->getRider();
|
||||||
// NOTE: Not using getActiveJobOrder since unsure if it is really being set
|
|
||||||
$jo_id = $req->request->get('jo_id');
|
// get rider's current job order
|
||||||
$jo = $this->em->getRepository(JobOrder::class)->find($jo_id);
|
$jo = $rider->getCurrentJobOrder();
|
||||||
if ($jo == null)
|
|
||||||
{
|
|
||||||
$data = [
|
|
||||||
'error' => 'No job order found.'
|
|
||||||
];
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
// create time stamp event for JO event
|
// create time stamp event for JO event
|
||||||
$rider = $this->session->getRider();
|
$rider = $this->session->getRider();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue