Change which flag is set when rider logs in and logs out. Add goOnline and goOffline API calls. #421

This commit is contained in:
Korina Cordero 2020-06-02 03:40:55 +00:00
parent af9be59d8d
commit dbdde5cdde
3 changed files with 95 additions and 1 deletions

View file

@ -84,3 +84,14 @@ cmb_rapi_invoice_generate:
path: /cmbrapi/generateinvoice
controller: App\Controller\CMBRAPIController::generateInvoice
methods: [GET]
cmb_rapi_online:
path: /cmbrapi/online
controller: App\Controller\CMBRAPIController::goOnline
methods: [POST]
cmb_rapi_offline:
path: /cmbrapi/offline
controller: App\Controller\CMBRAPIController::goOffline
methods: [POST]

View file

@ -393,5 +393,48 @@ class CMBRAPIController extends Controller
}
public function goOnline(Request $req, RiderAPIHandlerInterface $rapi_handler)
{
$res = new APIResult();
$data = $rapi_handler->goOnline($req);
if (isset($data['error']))
{
$message = $data['error'];
$res->setError(true)
->setErrorMessage($message);
}
else
{
$res->setData($data);
}
// response
return $res->getReturnResponse();
}
public function goOffline(Request $req, RiderAPIHandlerInterface $rapi_handler)
{
$res = new APIResult();
$data = $rapi_handler->goOffline($req);
if (isset($data['error']))
{
$message = $data['error'];
$res->setError(true)
->setErrorMessage($message);
}
else
{
$res->setData($data);
}
// response
return $res->getReturnResponse();
}
}

View file

@ -36,6 +36,8 @@ use DateTime;
class CMBRiderAPIHandler implements RiderAPIHandlerInterface
{
// NOTE: Rider's constructor sets flag_available and flag_active to true, by default.
protected $em;
protected $redis;
protected $ef;
@ -177,7 +179,8 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface
// assign rider to session
$this->session->setRider($rider);
$rider->setAvailable(true);
//$rider->setAvailable(true);
$rider->setActive(true);
$rider_id = $rider->getID();
// cache rider location (default to hub)
@ -229,7 +232,9 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface
// make rider unavailable
$rider = $this->session->getRider();
$rider->setAvailable(false);
$rider->setActive(false);
// remove from cache
$this->rcache->removeActiveRider($rider->getID());
@ -244,6 +249,41 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface
return $data;
}
public function goOnline(Request $req)
{
$required_params = [];
$data = $this->checkParamsAndKey($req, $required_params);
if (isset($data['error']))
return $data;
// set rider to available to take on JOs
$rider = $this->session->getRider();
$rider->setAvailable(true);
$this->em->flush();
return $data;
}
public function goOffline(Request $req)
{
$required_params = [];
$data = $this->checkParamsAndKey($req, $required_params);
if (isset($data['error']))
return $data;
// set rider to unavailable to take on JOs
$rider = $this->session->getRider();
$rider->setAvailable(false);
$this->em->flush();
return $data;
}
public function getJobOrderHistory(Request $req)
{
$required_params = [];