Add mqtt event sending in api controller jo cancel call #151

This commit is contained in:
Kendrick Chan 2018-07-02 01:45:08 +08:00
parent 47f3137ef1
commit 322e26afd1

View file

@ -900,7 +900,6 @@ class APIController extends Controller
'invoice' => $invoice_data
];
// set data
$res->setData($data);
@ -1261,7 +1260,7 @@ class APIController extends Controller
return $res->getReturnResponse();
}
public function cancelJobOrder(Request $req)
public function cancelJobOrder(Request $req, MQTTClient $mclient)
{
$required_params = [
'jo_id',
@ -1301,13 +1300,23 @@ class APIController extends Controller
}
// TODO: check job order status, if it's cancellable
$cancel_reason = $req->request->get('reason');
$jo->setStatus(JOStatus::CANCELLED)
->setDateCancel(new DateTime())
->setCancelReason($req->request->get('reason'));
->setCancelReason($cancel_reason);
$em->flush();
// send mobile app event
$payload = [
'event' => 'cancelled',
'reason' => $cancel_reason,
'jo_id' => $jo->getID(),
];
$mclient->sendEvent($jo, $payload);
$mclient->sendRiderEvent($jo, $payload);
$res->setData([]);
return $res->getReturnResponse();