76 lines
2.3 KiB
PHP
Executable File
76 lines
2.3 KiB
PHP
Executable File
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Modules\Helpdesk\Providers;
|
|
|
|
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
|
|
use Illuminate\Support\Facades\Route;
|
|
use Modules\Helpdesk\Http\Controllers\GitWebhookController;
|
|
use Modules\Helpdesk\Http\Controllers\WorkflowOpenController;
|
|
use Modules\Helpdesk\Support\ModuleInfo;
|
|
use Modules\Helpdesk\Http\Controllers\NativeAuthorizationController;
|
|
|
|
final class RouteServiceProvider extends ServiceProvider
|
|
{
|
|
public function boot(): void
|
|
{
|
|
parent::boot();
|
|
$this->map();
|
|
}
|
|
|
|
/**
|
|
* Define module routes.
|
|
*/
|
|
public function map(): void
|
|
{
|
|
$this->mapApiRoutes();
|
|
$this->mapWebRoutes();
|
|
}
|
|
|
|
/**
|
|
* Define web routes.
|
|
*/
|
|
protected function mapWebRoutes(): void
|
|
{
|
|
Route::middleware(['web'])
|
|
->prefix(config('helpdesk.route_prefix', 'helpdesk'))
|
|
->name('helpdesk.')
|
|
->get('/workflow/open/{token}', WorkflowOpenController::class)
|
|
->name('workflow.open');
|
|
|
|
Route::middleware(config('helpdesk.middleware', ['web', 'auth']))
|
|
->prefix(config('helpdesk.route_prefix', 'helpdesk'))
|
|
->name('helpdesk.')
|
|
->group(module_path(ModuleInfo::name(), 'Routes/web.php'));
|
|
// Native macOS authentication through Laravel Fortify.
|
|
Route::middleware(['web', 'auth:web'])
|
|
->prefix('helpdesk/native')
|
|
->name('helpdesk.native.')
|
|
->group(function (): void {
|
|
Route::get('/authorize', [NativeAuthorizationController::class, 'authorize'])
|
|
->name('authorize');
|
|
|
|
Route::post('/authorize', [NativeAuthorizationController::class, 'approve'])
|
|
->name('approve');
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Define API routes.
|
|
*/
|
|
protected function mapApiRoutes(): void
|
|
{
|
|
Route::prefix('api/helpdesk')
|
|
->middleware('api')
|
|
->name('api.helpdesk.')
|
|
->group(module_path(ModuleInfo::name(), 'Routes/api.php'));
|
|
|
|
Route::prefix('api/git')
|
|
->middleware('api')
|
|
->name('api.git.')
|
|
->post('/gitea/webhook', [GitWebhookController::class, 'gitea'])
|
|
->name('gitea.webhook');
|
|
}
|
|
}
|