示例#1
0
<?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();