generated from Flycro/laravel-nuxt
52 lines
3.2 KiB
PHP
52 lines
3.2 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\AccountController;
|
|
use App\Http\Controllers\AuthController;
|
|
use App\Http\Controllers\BookRecommendationController;
|
|
use App\Http\Controllers\DeadlineController;
|
|
use App\Http\Controllers\UploadController;
|
|
use App\Http\Controllers\VoteController;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
Route::get('/', function () {
|
|
return ['ok' => true, 'message' => 'Welcome to the API'];
|
|
});
|
|
|
|
Route::prefix('api/v1')->group(function () {
|
|
Route::get('login/{provider}/redirect', [AuthController::class, 'redirect'])->name('login.provider.redirect');
|
|
Route::get('login/{provider}/callback', [AuthController::class, 'callback'])->name('login.provider.callback');
|
|
Route::post('login', [AuthController::class, 'login'])->name('login');
|
|
Route::post('register', [AuthController::class, 'register'])->name('register');
|
|
Route::post('forgot-password', [AuthController::class, 'sendResetPasswordLink'])->middleware('throttle:5,1')->name('password.email');
|
|
Route::post('reset-password', [AuthController::class, 'resetPassword'])->name('password.store');
|
|
Route::post('verification-notification', [AuthController::class, 'verificationNotification'])->middleware('throttle:verification-notification')->name('verification.send');
|
|
Route::get('verify-email/{ulid}/{hash}', [AuthController::class, 'verifyEmail'])->middleware(['signed', 'throttle:6,1'])->name('verification.verify');
|
|
|
|
Route::middleware(['auth:sanctum'])->group(function () {
|
|
Route::post('logout', [AuthController::class, 'logout'])->name('logout');
|
|
Route::post('devices/disconnect', [AuthController::class, 'deviceDisconnect'])->name('devices.disconnect');
|
|
Route::get('devices', [AuthController::class, 'devices'])->name('devices');
|
|
Route::get('user', [AuthController::class, 'user'])->name('user');
|
|
Route::match(['get', 'post'], '/broadcasting/auth', [\Illuminate\Broadcasting\BroadcastController::class, 'authenticate'])->withoutMiddleware(\Illuminate\Foundation\Http\Middleware\VerifyCsrfToken::class)->name('broadcasting.auth');
|
|
|
|
Route::resource('book-recommendations', BookRecommendationController::class);
|
|
Route::get('/book-recommendations/{bookRecommendationId}/deadlines', [DeadlineController::class, 'deadlinesByBookRecommendation']);
|
|
Route::post('/vote', [VoteController::class, 'castVote']);
|
|
|
|
Route::get('/deadlines', [DeadlineController::class, 'index']);
|
|
Route::post('/deadlines', [DeadlineController::class, 'createDeadline']);
|
|
Route::put('/user-deadlines/{deadlineId}', [DeadlineController::class, 'updateUserDeadline']);
|
|
|
|
Route::post('/admin/add-total-votes-all', [VoteController::class, 'addTotalVotesAll']);
|
|
|
|
Route::post('account/update', [AccountController::class, 'update'])->name('account.update');
|
|
Route::post('account/password', [AccountController::class, 'password'])->name('account.password');
|
|
|
|
Route::post('jobs/fetch-cover', [BookRecommendationController::class, 'fetchCover'])->name('jobs.fetch-cover');
|
|
|
|
Route::middleware(['throttle:uploads'])->group(function () {
|
|
Route::post('upload', [UploadController::class, 'image'])->name('upload.image');
|
|
});
|
|
});
|
|
});
|