allerta-vvf/backend/routes/api.php

95 lines
4.0 KiB
PHP
Raw Normal View History

2023-02-19 01:40:12 +01:00
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\AuthController;
use App\Http\Controllers\UserController;
2023-03-15 23:09:02 +01:00
use App\Http\Controllers\ScheduleSlotsController;
use App\Http\Controllers\AvailabilityController;
2023-10-22 14:22:12 +02:00
use App\Http\Controllers\AlertController;
2023-09-01 14:24:10 +02:00
use App\Http\Controllers\LogsController;
2023-08-29 16:18:26 +02:00
use App\Http\Controllers\TelegramController;
use App\Http\Controllers\ServiceController;
use App\Http\Controllers\PlacesController;
use App\Http\Controllers\ServiceTypeController;
use App\Http\Controllers\TrainingController;
2023-02-23 22:19:42 +01:00
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Artisan;
use \Matthewbdaly\ETagMiddleware\ETag;
2023-02-19 01:40:12 +01:00
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "api" middleware group. Make something great!
|
*/
Route::post('/login', [AuthController::class, 'login']);
2023-09-04 01:09:53 +02:00
Route::middleware('auth:sanctum')->group( function () {
2023-09-01 14:24:10 +02:00
//Route::post('/register', [AuthController::class, 'register']); //TODO: replace with admin only route
2023-09-07 15:14:21 +02:00
Route::post('/impersonate/{user}', [AuthController::class, 'impersonate']);
Route::post('/stop_impersonating', [AuthController::class, 'stopImpersonating']);
2023-09-07 15:52:25 +02:00
Route::post('/refresh_token', [AuthController::class, 'refreshToken']);
2023-02-23 00:23:56 +01:00
Route::get('/me', [AuthController::class, 'me']);
Route::post('/me', [AuthController::class, 'me']);
Route::get('/list', [UserController::class, 'index']);
2023-03-15 23:09:02 +01:00
Route::get('/schedules', [ScheduleSlotsController::class, 'index']);
Route::post('/schedules', [ScheduleSlotsController::class, 'store']);
Route::get('/availability', [AvailabilityController::class, 'get'])->middleware(ETag::class);
Route::post('/availability', [AvailabilityController::class, 'updateAvailability']);
Route::post('/manual_mode', [AvailabilityController::class, 'updateAvailabilityManualMode']);
Route::get('/alerts', [AlertController::class, 'index'])->middleware(ETag::class);
2023-10-22 14:22:12 +02:00
Route::post('/alerts', [AlertController::class, 'store']);
Route::get('/alerts/{id}', [AlertController::class, 'show'])->middleware(ETag::class);
2023-10-22 14:22:12 +02:00
Route::patch('/alerts/{id}', [AlertController::class, 'update']);
Route::get('/services', [ServiceController::class, 'index'])->middleware(ETag::class);
2023-09-01 13:23:44 +02:00
Route::post('/services', [ServiceController::class, 'createOrUpdate']);
Route::get('/services/{id}', [ServiceController::class, 'show']);
Route::delete('/services/{id}', [ServiceController::class, 'destroy']);
Route::get('/service_types', [ServiceTypeController::class, 'index']);
Route::post('/service_types', [ServiceTypeController::class, 'create']);
Route::get('/places/search', [PlacesController::class, 'search']);
Route::get('/places/{id}', [PlacesController::class, 'show']);
Route::get('/trainings', [TrainingController::class, 'index'])->middleware(ETag::class);
Route::post('/trainings', [TrainingController::class, 'createOrUpdate']);
Route::get('/trainings/{id}', [TrainingController::class, 'show']);
Route::delete('/trainings/{id}', [TrainingController::class, 'destroy']);
Route::get('/logs', [LogsController::class, 'index'])->middleware(ETag::class);
2023-09-01 14:24:10 +02:00
2023-08-29 16:18:26 +02:00
Route::post('/telegram_login_token', [TelegramController::class, 'loginToken']);
2023-02-23 00:23:56 +01:00
Route::post('/logout', [AuthController::class, 'logout']);
2023-02-19 01:40:12 +01:00
});
2023-02-23 22:19:42 +01:00
Route::get('/owner_image', function() {
return response()
->file(
resource_path('images') . DIRECTORY_SEPARATOR . config("features.owner_image"),
['Cache-control' => 'max-age=2678400']
);
});
2023-02-23 22:19:42 +01:00
Route::post('/cron/execute', function(Request $request) {
//Go to app/Console/Kernel.php to view schedules
if(config('cron.external_cron_enabled') && $request->header('Cron') == config('cron.execution_code')) {
Artisan::call('schedule:run');
} else {
return response('Access Denied', 403);
}
});