toby/routes/web.php
Adrian Hopek 6506855bba #90 - wip
2022-04-13 09:19:42 +02:00

95 lines
4.4 KiB
PHP

<?php
declare(strict_types=1);
use Illuminate\Support\Facades\Route;
use Toby\Infrastructure\Http\Controllers\AnnualSummaryController;
use Toby\Infrastructure\Http\Controllers\DashboardController;
use Toby\Infrastructure\Http\Controllers\GoogleController;
use Toby\Infrastructure\Http\Controllers\HolidayController;
use Toby\Infrastructure\Http\Controllers\LogoutController;
use Toby\Infrastructure\Http\Controllers\MonthlyUsageController;
use Toby\Infrastructure\Http\Controllers\SelectYearPeriodController;
use Toby\Infrastructure\Http\Controllers\TimesheetController;
use Toby\Infrastructure\Http\Controllers\UserController;
use Toby\Infrastructure\Http\Controllers\VacationCalendarController;
use Toby\Infrastructure\Http\Controllers\VacationLimitController;
use Toby\Infrastructure\Http\Controllers\VacationRequestController;
use Toby\Infrastructure\Http\Middleware\TrackUserLastActivity;
Route::middleware(["auth", TrackUserLastActivity::class])->group(function (): void {
Route::get("/", DashboardController::class)
->name("dashboard");
Route::post("/logout", LogoutController::class);
Route::resource("users", UserController::class)
->except("show")
->whereNumber("user");
Route::post("/users/{user}/restore", [UserController::class, "restore"])
->whereNumber("user")
->withTrashed();
Route::resource("holidays", HolidayController::class)
->except("show")
->whereNumber("holiday");
Route::post("year-periods/{yearPeriod}/select", SelectYearPeriodController::class)
->whereNumber("yearPeriod")
->name("year-periods.select");
Route::prefix("/vacation")->as("vacation.")->group(function (): void {
Route::get("/limits", [VacationLimitController::class, "edit"])
->name("limits");
Route::get("/calendar/{month?}", [VacationCalendarController::class, "index"])
->name("calendar");
Route::get("/timesheet/{month}", TimesheetController::class)
->name("timesheet");
Route::get("/limits", [VacationLimitController::class, "edit"])
->name("limits");
Route::put("/limits", [VacationLimitController::class, "update"]);
Route::get("/requests", [VacationRequestController::class, "indexForApprovers"])
->name("requests.indexForApprovers");
Route::get("/requests/me", [VacationRequestController::class, "index"])
->name("requests.index");
Route::get("/requests/create", [VacationRequestController::class, "create"])
->name("requests.create");
Route::post("/requests", [VacationRequestController::class, "store"])
->name("requests.store");
Route::get("/requests/{vacationRequest}", [VacationRequestController::class, "show"])
->whereNumber("vacationRequest")
->name("requests.show");
Route::get("/requests/{vacationRequest}/download", [VacationRequestController::class, "download"])
->whereNumber("vacationRequest")
->name("requests.download");
Route::post("/requests/{vacationRequest}/reject", [VacationRequestController::class, "reject"])
->whereNumber("vacationRequest")
->name("requests.reject");
Route::post("/requests/{vacationRequest}/cancel", [VacationRequestController::class, "cancel"])
->whereNumber("vacationRequest")
->name("requests.cancel");
Route::post("/requests/{vacationRequest}/accept-as-technical", [VacationRequestController::class, "acceptAsTechnical"], )
->whereNumber("vacationRequest")
->name("requests.accept-as-technical");
Route::post("/requests/{vacationRequest}/accept-as-administrative", [VacationRequestController::class, "acceptAsAdministrative"], )
->whereNumber("vacationRequest")
->name("requests.accept-as-administrative");
Route::get("/monthly-usage", MonthlyUsageController::class)
->name("monthly-usage");
Route::get("/annual-summary", AnnualSummaryController::class)
->name("annual-summmary");
});
});
Route::middleware("guest")->group(function (): void {
Route::get("login", fn() => inertia("Login"))
->name("login");
Route::get("login/google/start", [GoogleController::class, "redirect"])
->name("login.google.start");
Route::get("login/google/end", [GoogleController::class, "callback"])
->name("login.google.end");
});