public function store(Request $request, $station_id)
 {
     $station = \App\Station::findOrFail($station_id);
     if (!$request->user()->isAdmin() && $station->user_id != $request->user()->id) {
         return abort(403);
     }
     $aerometric = new \App\Aerometric();
     $aerometric->station_id = $station->id;
     foreach (array_keys(config('aerometrics.properties')) as $property) {
         $aerometric->{$property} = request()->input($property, '0.0');
     }
     $aerometric->save();
     return redirect('backend/stations/' . $station->id . '/aerometrics/' . $aerometric->id);
 }
Ejemplo n.º 2
0
 public function postImport(Request $request, $id)
 {
     $station = \App\Station::findOrFail($id);
     if (!$request->user()->isAdmin() && $station->user_id != $request->user()->id) {
         return abort(403);
     }
     $this->validate($request, ['file' => 'required|mimes:txt|max:5000']);
     $file = request()->file('file');
     $contents = file_get_contents($file->getPathname());
     $data = [];
     if ($file->getClientOriginalExtension() == 'csv') {
         $lines = explode("\r\n", $contents);
         $array = array_map("str_getcsv", $lines);
         $header = array_shift($array);
         foreach ($array as $v) {
             $data[] = array_combine($header, $v);
         }
     } else {
         if ($file->getClientOriginalExtension() == 'json') {
             $data = json_decode($contents, true);
         }
     }
     foreach ($data as $d) {
         $aerometric = new \App\Aerometric();
         $aerometric->station_id = $station->id;
         foreach (array_keys(config('aerometrics.properties')) as $property) {
             $aerometric->{$property} = array_get($d, $property, '0.0');
         }
         $aerometric->created_at = $aerometric->updated_at = array_get($d, 'created_at', new \DateTime('now'));
         $aerometric->save();
     }
     return redirect('backend/stations/' . $station->id);
 }
Ejemplo n.º 3
0
    Route::get('/stations', function () {
        return App\Station::all();
    });
    Route::post('/station', function () {
        $station = App\Station::where('unique_id', '=', request()->input('unique_id', ''))->firstOrFail();
        $aerometric = new App\Aerometric();
        $aerometric->station_id = $station->id;
        foreach (array_keys(config('aerometrics.properties')) as $property) {
            $aerometric->{$property} = request()->input($property, '0.0');
        }
        $aerometric->save();
        return ['success' => true];
    });
    Route::get('/station', function () {
        $station = App\Station::where('unique_id', '=', request()->input('unique_id', ''))->firstOrFail();
        $aerometric = new App\Aerometric();
        $aerometric->station_id = $station->id;
        foreach (array_keys(config('aerometrics.properties')) as $property) {
            $aerometric->{$property} = request()->input($property, '0.0');
        }
        $aerometric->save();
        return ['success' => true];
    });
});
Route::group(['middleware' => 'web'], function () {
    Route::group(['middleware' => 'auth', 'prefix' => 'backend'], function () {
        Route::get('/', 'BackendController@index');
        Route::resource('stations', 'Backend\\StationsController');
        Route::get('stations/{stations}/import', 'Backend\\StationsController@getImport');
        Route::post('stations/{stations}/import', 'Backend\\StationsController@postImport');
        Route::resource('stations.aerometrics', 'Backend\\AerometricsController');