public function sign(Request $request, $id) { $delivery = Delivery::find($id); if (!$delivery || $delivery->state == 0) { return Response::json("Error", 400); } else { //Okay, let's check if the the current logged agent $userId = Authorizer::getResourceOwnerId(); $agent = Agent::where('user_id', $userId)->first(); if (!$agent) { return Response::json("Error", 400); } if ($delivery->agent_id != $agent->id) { return Response::json("Error", 403); } $file = $request->file('signature'); if ($file !== null) { if ($file->isValid()) { $file->move(public_path() . "/uploads", $id . "_signature.png"); return Response::json("OK", 200); } } } return Response::json("Error", 400); }
public function track($tracking_code) { if (!empty($tracking_code)) { $delivery = Delivery::where("tracking_code", $tracking_code)->first(); if (!$delivery) { abort(404); } $latlng = null; if ($delivery->state == 0) { $latlng = explode(',', $delivery->sender_position); } else { if ($delivery->state == 1 && $delivery->agent) { $latlng = explode(',', $delivery->agent->last_position); } else { if ($delivery->state == 2) { $latlng = explode(',', $delivery->recipient_position); } } } $lat = $latlng[0]; $lng = $latlng[1]; $state_text = array("Waiting for pickup", "Being delivered", "Delivered"); $current_dt = new DateTime(); $data = array('tracking_code' => $tracking_code, 'delivery' => $delivery, 'title' => 'Delivery Tracking', 'lat' => $lat, 'lng' => $lng, 'state' => $state_text[$delivery->state], 'estimated_pickup' => (new DateTime($delivery->estimated_pickup))->format('H:i'), 'estimated_delivery' => (new DateTime($delivery->estimated_delivery))->format('H:i'), 'current_dt' => $current_dt->format('D, d M Y, H:i')); return view('track', $data); } else { abort(404); } }