66 lines
2.4 KiB
PHP
Executable File
66 lines
2.4 KiB
PHP
Executable File
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
use Modules\Helpdesk\Http\Controllers\GitWebhookController;
|
|
use Modules\Helpdesk\Http\Controllers\HelpdeskSyncController;
|
|
use Modules\Helpdesk\Http\Controllers\NativeTicketController;
|
|
use Modules\Helpdesk\Http\Middleware\VerifyHelpdeskSyncToken;
|
|
use Modules\Helpdesk\Http\Controllers\NativeAuthController;
|
|
use Modules\Helpdesk\Http\Controllers\NativeTokenController;
|
|
|
|
Route::get('/status', static fn (): array => [
|
|
'module' => 'helpdesk',
|
|
'status' => 'ok',
|
|
])->name('status');
|
|
|
|
Route::middleware(VerifyHelpdeskSyncToken::class)
|
|
->prefix('sync')
|
|
->name('sync.')
|
|
->group(static function (): void {
|
|
Route::get('/status', [HelpdeskSyncController::class, 'status'])->name('status');
|
|
Route::get('/export', [HelpdeskSyncController::class, 'export'])->name('export');
|
|
Route::post('/import', [HelpdeskSyncController::class, 'import'])->name('import');
|
|
});
|
|
|
|
Route::post('/git/webhook/{repository}', GitWebhookController::class)
|
|
->whereNumber('repository')
|
|
->name('git.webhook');
|
|
|
|
Route::post('/git/gitea/webhook', [GitWebhookController::class, 'gitea'])
|
|
->name('git.gitea.webhook');
|
|
// Append inside Modules/Helpdesk/Routes/api.php. Verify your module route prefix.
|
|
Route::middleware('auth:sanctum')->prefix('native/v1')->group(function () {
|
|
Route::get('tickets', [NativeTicketController::class, 'index']);
|
|
Route::get('tickets/{ticket}', [NativeTicketController::class, 'show']);
|
|
Route::post('tickets', [NativeTicketController::class, 'store']);
|
|
});
|
|
|
|
Route::prefix('native/v1')
|
|
->name('native.')
|
|
->group(function (): void {
|
|
|
|
Route::middleware('auth:sanctum')->group(function (): void {
|
|
|
|
Route::get('auth/user', [NativeAuthController::class, 'user'])
|
|
->name('auth.user');
|
|
|
|
Route::post('auth/logout', [NativeAuthController::class, 'logout'])
|
|
->name('auth.logout');
|
|
|
|
Route::get('tickets', [NativeTicketController::class, 'index'])
|
|
->name('tickets.index');
|
|
|
|
Route::get('tickets/{ticket}', [NativeTicketController::class, 'show'])
|
|
->name('tickets.show');
|
|
|
|
Route::post('tickets', [NativeTicketController::class, 'store'])
|
|
->name('tickets.store');
|
|
});
|
|
Route::post('auth/token', [NativeTokenController::class, 'exchange'])
|
|
->middleware('throttle:10,1')
|
|
->name('auth.token');
|
|
});
|
|
|