Files
wonderful-weather/routes/api.php
foobar 27c1969aaa init
2022-08-21 21:39:06 +02:00

56 lines
1.7 KiB
PHP

<?php
use App\Models\City;
use App\Http\Resources\CityResource;
use App\Http\Resources\CityCollection;
use App\Filters\CityFilter;
use App\Http\Controllers\DatabaseController;
use App\Http\Requests\StoreCityRequest;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Requests\UpdateCityRequest;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});
Route::get('/city/{id}', function ($id) {
return new CityResource(City::findOrFail($id));
});
Route::get('/city', function (Request $request) {
$filter = new CityFilter();
$filterItems = $filter->transform($request); // [['column', 'operator', 'value']]
return new CityCollection(City::where($filterItems)->get());
});
Route::group(['middleware' => 'auth:sanctum'], function() {
Route::post('/city', function (StoreCityRequest $request) {
$id = DatabaseController::storeApiRequest($request);
return new CityResource(City::findOrFail($id));
});
Route::put('/city/{id}', function ($id, UpdateCityRequest $request) {
$DatabaseController = new DatabaseController();
$DatabaseController->updateApiRequest($id, $request);
});
Route::delete('/city/{id}', function ($id) {
City::findOrFail($id)->delete();
});
});