56 lines
1.7 KiB
PHP
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();
|
|
});
|
|
|
|
}); |