dootask/routes/web.php
kuaifan a49ee608a5 feat(push): 新增 DooPush 推送通道,与友盟并存
- 新增 app_push_devices 表与 api/push/device 接口(新版 App 上报/删除 DooPush 设备)
- app/Module/AppPush 统一分发友盟与 DooPush,业务字段经 payload.data 下发
- 系统设置「App 推送」新增 DooPush 配置;点击通知打开对应会话
- 更新 Expo 壳子模块(接入 DooPush)、语言包与 ai-kb
2026-10-19 10:33:19 +00:00

115 lines
5.5 KiB
PHP

<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\IndexController;
use App\Http\Controllers\WebDavProtocolController;
use App\Http\Controllers\Api\TestController;
use App\Http\Controllers\Api\FileController;
use App\Http\Controllers\Api\FileDavController;
use App\Http\Controllers\Api\UsersController;
use App\Http\Controllers\Api\PushController;
use App\Http\Controllers\Api\ContactsController;
use App\Http\Controllers\Api\DialogController;
use App\Http\Controllers\Api\PublicController;
use App\Http\Controllers\Api\ReportController;
use App\Http\Controllers\Api\SystemController;
use App\Http\Controllers\Api\LicenseController;
use App\Http\Controllers\Api\AssistantController;
use App\Http\Controllers\Api\ProjectController;
use App\Http\Controllers\Api\ComplaintController;
use App\Http\Controllers\Api\SearchController;
use App\Http\Controllers\Api\AppsController;
use App\Http\Controllers\Api\UploadController;
use App\Http\Controllers\Api\DashboardController;
use App\Http\Controllers\Api\ProjectTaskHandoffController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
/**
* 接口
*/
Route::prefix('api')->middleware(['webapi'])->group(function () {
// 会员
Route::any('users/{method}', UsersController::class);
Route::any('users/{method}/{action}', UsersController::class);
// APP 推送设备
Route::any('push/{method}', PushController::class);
// 通讯录
Route::any('contacts/{method}', ContactsController::class);
Route::any('contacts/{method}/{action}', ContactsController::class);
// 项目
Route::any('project/{method}', ProjectController::class);
Route::any('project/{method}/{action}', ProjectController::class);
Route::any('projecttaskhandoff/{method}', ProjectTaskHandoffController::class);
// 仪表盘
Route::any('dashboard/{method}', DashboardController::class);
Route::any('dashboard/{method}/{action}', DashboardController::class);
// 系统
Route::any('system/{method}', SystemController::class);
Route::any('system/{method}/{action}', SystemController::class);
// 在线授权
Route::any('license/{method}', LicenseController::class);
Route::any('license/{method}/{action}', LicenseController::class);
// 对话
Route::any('dialog/{method}', DialogController::class);
Route::any('dialog/{method}/{action}', DialogController::class);
// 文件
Route::any('file/dav/{action}', FileDavController::class)->defaults('method', 'dav');
Route::any('file/{method}', FileController::class);
Route::any('file/{method}/{action}', FileController::class);
// 分片上传
Route::any('upload/{method}', UploadController::class);
Route::any('upload/{method}/{action}', UploadController::class);
// 报告
Route::any('report/{method}', ReportController::class);
Route::any('report/{method}/{action}', ReportController::class);
// 公开接口
Route::any('public/{method}', PublicController::class);
Route::any('public/{method}/{action}', PublicController::class);
// 助手
Route::any('assistant/{method}', AssistantController::class);
Route::any('assistant/{method}/{action}', AssistantController::class);
// 投诉
Route::any('complaint/{method}', ComplaintController::class);
Route::any('complaint/{method}/{action}', ComplaintController::class);
// 智能搜索
Route::any('search/{method}', SearchController::class);
Route::any('search/{method}/{action}', SearchController::class);
// 应用相关
Route::any('apps/{method}', AppsController::class);
Route::any('apps/{method}/{action}', AppsController::class);
// 测试
Route::any('test/{method}', TestController::class);
Route::any('test/{method}/{action}', TestController::class);
});
/**
* WebDAV 协议入口(必须位于页面兜底路由之前)
*/
Route::match([
'OPTIONS', 'PROPFIND', 'PROPPATCH', 'HEAD', 'GET', 'PUT',
'MKCOL', 'COPY', 'MOVE', 'DELETE', 'LOCK', 'UNLOCK',
], 'dav/{path?}', WebDavProtocolController::class)->where('path', '.*');
/**
* 页面
*/
Route::middleware(['webapi'])->group(function () {
Route::any('/', IndexController::class);
Route::any('/{method}', IndexController::class);
Route::any('/{method}/{action}', IndexController::class);
Route::any('/{method}/{action}/{child}', IndexController::class);
Route::any('/{method}/{action}/{child}/{n}', IndexController::class)->where('method', '^(?!(uploads|images)).*');
Route::any('/{method}/{action}/{child}/{n}/{c}', IndexController::class)->where('method', '^(?!(uploads|images)).*');
});