<?php Route::group(['middleware' => 'api', 'prefix' => 'api'], function () { Route::get('/stations/{id}', function ($id) { $station = App\Station::findOrFail($id); return $station->aerometrics()->latest()->whereRaw('`created_at` >= NOW() - INTERVAL 7 DAY')->get(); }); Route::post('/stations/{id}', function ($id) { $station = App\Station::findOrFail($id); $_get = ['created_at']; $_fields = request()->input('fields', []); $_properties = array_keys(config('aerometrics.properties')); $_to = new DateTime('now'); $_from = clone $_to; $_from->modify('-1 week'); $range = request()->input('range', $_from->format('d/m/Y H:i:s') . ' - ' . $_to->format('d/m/Y H:i:s')); $range = explode(' - ', $range); $from = DateTime::createFromFormat('d/m/Y H:i:s', $range[0]); $to = DateTime::createFromFormat('d/m/Y H:i:s', $range[1]); foreach ($_fields as $_field) { if (in_array($_field, $_properties)) { $_get[] = $_field; } } return $station->aerometrics()->latest()->where('created_at', '>=', $from)->where('created_at', '<=', $to)->get($_get); }); Route::get('/stations', function () { return App\Station::all(); }); Route::post('/station', function () { $station = App\Station::where('unique_id', '=', request()->input('unique_id', ''))->firstOrFail();