Add rider availability ajax call #424

This commit is contained in:
Kendrick Chan 2020-07-16 14:19:16 +08:00
parent f060223fb5
commit b24bae3788
3 changed files with 40 additions and 4 deletions

View file

@ -56,3 +56,8 @@ rider_priority_down_jo:
path: /riders/{id}/priority_down/{jo_id}
controller: App\Controller\RiderController::priorityDownJO
methods: [GET]
rider_ajax_avialable:
path: /riders/{id}/available
controller: App\Controller\RiderController::ajaxAvailable
methods: [GET]

View file

@ -85,7 +85,6 @@ class MapEventHandler {
var obj = JSON.parse(payload);
var status = obj.status;
console.log(status);
console.log("status " + status);
switch (status) {
case 'rider_offline':
@ -94,14 +93,27 @@ class MapEventHandler {
case 'rider_online':
var lat = parseFloat(obj.latitude);
var lng = parseFloat(obj.longitude);
this.dashmap.putRiderAvailableMarker(chan_split[1], lat, lng);
// cheeck if rider is available / unavailable
// TODO: make url not hardcoded
$.get('https://cmbdev.wildcard.cc/riders/' + chan_split[1] + '/available').done(function(data) {
console.log('rider availability - ' + data);
switch (data) {
case 'available':
this.dashmap.putRiderAvailableMarker(chan_split[1], lat, lng);
break;
case 'unavailable':
this.dashmap.putRiderActiveJOMarker(chan_split[1], lat, lng);
break;
}
}
break;
}
break;
case "location":
console.log("got location for rider " + chan_split[1] + " - " + payload);
// console.log("got location for rider " + chan_split[1] + " - " + payload);
var pl_split = payload.split(':');
console.log(pl_split);
// console.log(pl_split);
// check for correct format
if (pl_split.length != 2)

View file

@ -596,4 +596,23 @@ class RiderController extends Controller
return $this->redirecttoRoute('rider_update', ['id' => $rider->getID()]);
}
/**
* @ParamConverter("rider", class="App\Entity\Rider")
*/
public function ajaxAvailable(EntityManagerInterface $em, Rider $rider)
{
$jos = $rider->getOpenJobOrders();
if (count($jos) > 0)
$avail = 'available';
else
$avail = 'unavaiable';
$response = new Response(
'active',
Response::HTTP_OK,
['content-type' => 'text/plain']
);
return $response;
}
}