Esempio n. 1
0
 public static function createCase($req)
 {
     $all = $req;
     if (!is_array($all['location_data'])) {
         $location_information = json_decode($all['location_data'], true);
     } else {
         $location_information = json_decode(json_encode($all['location_data']), FALSE);
     }
     //array to object
     $location_information = json_decode(json_encode($location_information), FALSE);
     $location_information->heading = 0;
     if (isset($location_information->longitude)) {
         $all['operation_area'] = \App\Http\Controllers\ApiController::getLocationArea($location_information->longitude, $location_information->latitude);
     }
     if (!isset($all['boat_status'])) {
         $all['boat_status'] = 'distress';
     }
     if (!isset($all['boat_condition'])) {
         $all['boat_condition'] = 'unknown';
     }
     //no operation area;
     if (!$all['operation_area']) {
         $result = [];
         $result['error'] = 'no_operation_area';
         return json_encode($result);
     }
     $emergencyCase = new emergencyCase($all);
     $emergencyCase->save();
     $emergencyCasePositions = [new emergencyCaseLocation(['lon' => (double) $location_information->longitude, 'lat' => (double) $location_information->latitude, 'accuracy' => $location_information->accuracy, 'heading' => $location_information->heading])];
     $emergencyCase->emergency_case_locations()->saveMany($emergencyCasePositions);
     $result = [];
     $result['error'] = null;
     $result['data']['emergency_case_id'] = $emergencyCase->id;
     $result['data']['operation_area'] = $emergencyCase->operation_area;
     return json_encode($result);
 }