123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- <?php
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Route;
- use App\Http\Controllers\API;
- /*
- |--------------------------------------------------------------------------
- | API Routes
- |--------------------------------------------------------------------------
- |
- | Here is where you can register API routes for your application. These
- | routes are loaded by the RouteServiceProvider and all of them will
- | be assigned to the "api" middleware group. Make something great!
- |
- */
- Route::post("/login", [API\AuthController::class, "login"]);
- Route::middleware(['auth:sanctum'])->group(function () {
- Route::post("/logout", [API\AuthController::class, "logout"]);
- Route::get("user/details", [API\UserController::class, 'details'])->name("user.details");
- // Allow access only to admin role
- Route::middleware(['permission', 'role.super-admin'])->group(function () {
- Route::get("config", [API\ConfigController::class, "index"])->name("config.index");
- Route::post("config-setting", [API\ConfigController::class, "setting"])->name("config.setting");
- Route::get("config/message-notification-setting", [API\ConfigController::class, "messageNotificationSetting"])
- ->name("config.message-notification-setting");
- Route::post("config/message-notification-setting", [API\ConfigController::class, "storeMessageNotificationSetting"])
- ->name("config.store-message-notification-setting");
- Route::apiResource("company", API\CompanyController::class)->only([
- 'store', 'update', 'destroy'
- ]);
- Route::get("permission", [API\PermissionController::class, 'groupPermissions'])->name("permission.group-permission");
- Route::get("role/{role}/permission", [API\RoleController::class, "permissions"])->name("role.permissions");
- Route::put("role/{role}/assign-permission", [API\RoleController::class, "assignPermissions"])->name("role.assign-permissions");
- Route::put("user/{user}/assign-role", [API\UserController::class, "assignRole"])->name("user.assign-role");
- // Route::patch("user/userInfo/{user_id}",[API\UserController::class, 'updateUserInfo'])->name('user.updateUserInfo');
- });
- Route::middleware(['permission'])->group(function() {
- Route::apiResources([
- 'asset-group' => API\AssetGroupController::class,
- 'asset' => API\AssetController::class,
- 'requirement-group' => API\RequirementGroupController::class,
- 'requirement' => API\RequirementController::class,
- 'project' => API\ProjectController::class,
- 'plan' => API\PlanController::class,
- 'roles' => API\RoleController::class,
- 'custom-field' => API\CustomFieldController::class,
- 'naming-rule' => API\NameRuleController::class,
- 'task' => API\TaskController::class,
- 'library' => API\LibraryController::class,
- 'department' => API\DepartmentController::class,
- 'user' => API\UserController::class,
- 'container' => API\ContainerController::class,
- ]);
- Route::apiResource("company", API\CompanyController::class)->only([
- 'index', 'show'
- ]);
- Route::get("library-linkage/{type}", [API\LibraryController::class, "linkage"])->name("library.linkage");
- Route::get("asset/{asset_id}/report",[API\AssetController::class, 'report'])->name('asset.report');
- Route::get("asset-tree",[API\AssetController::class, 'tree'])->name('asset.tree');
- Route::patch("requirement/{requirement_id}/close",[API\RequirementController::class, 'close'])->name('requirement.close');
- Route::patch("requirement/{requirement_id}/start",[API\RequirementController::class, 'start'])->name('requirement.start');
- Route::get("requirement/{asset_id}/asset", [API\RequirementController::class, "byAsset"])->name("requirement.byAsset");
- Route::patch("requirement/{plan_id}/plan", [API\RequirementController::class, "linkPlan"])->name("requirement.linkPlan");
- Route::patch("requirement/plan/unlink", [API\RequirementController::class, "unlinkPlan"])->name("requirement.unlinkPlan");
- Route::get("project-tree",[API\ProjectController::class, 'tree'])->name('project.tree');
- Route::get("project/{project}/dynamic", [API\ProjectController::class, "dynamic"])->name("project.dynamic");
- Route::get("project/{project}/latest-dynamic", [API\ProjectController::class, "latestDynamic"])->name("project.latest-dynamic");
- Route::get("project/{project}/kanban", [API\ProjectController::class, "kanban"])->name("project.kanban");
- Route::get("project/{project}/group-view", [API\ProjectController::class, "groupView"])->name("project.group-view");
- Route::get("project/{project}/gantt", [API\ProjectController::class, "gantt"])->name("project.gantt");
- Route::get("project/{project}/print-kanban", [API\ProjectController::class, "printKanban"])->name("project.print-kanban");
- Route::patch("project/{project}/closed", [API\ProjectController::class, "closed"])->name("project.closed");
- Route::patch("project/{project}/start", [API\ProjectController::class, "start"])->name("project.start");
- Route::patch("project/{project}/pause", [API\ProjectController::class, "pause"])->name("project.pause");
- Route::patch("project/{project}/postpone", [API\ProjectController::class, "postpone"])
- ->name("project.postpone");
- Route::patch("project/{project}/link-requirement", [API\ProjectController::class, "linkRequirement"])
- ->name("project.link-requirement");
- Route::patch("project/{project}/unlink-requirement", [API\ProjectController::class, "unlinkRequirement"])
- ->name("project.unlink-requirement");
- Route::patch("project/{project}/link-requirement-by-plan", [API\ProjectController::class, "linkRequirementByPlan"])
- ->name("project.link-requirement-by-plan");
- Route::patch("project/{project_id}/update-link-assets", [API\ProjectController::class, "updateLinkAssets"])
- ->name("project.update-link-assets");
- Route::get("project/{project}/plan", [API\ProjectController::class, "plan"])
- ->name("project.plan"); //项目关联计划
- Route::get("project/{project}/requirement", [API\ProjectController::class, "requirement"])
- ->name("project.requirement"); //项目需求
- Route::get("project/{project}/not-link-asset-requirement", [API\ProjectController::class, "notLinkAssetRequirement"])
- ->name("project.not-link-asset-requirement"); //项目未关联的资产需求
- Route::patch("task/{task}/closed", [API\TaskController::class, "closed"])->name("task.closed");
- Route::patch("task/{task}/start", [API\TaskController::class, "start"])->name("task.start");
- Route::patch("task/{task}/pause", [API\TaskController::class, "pause"])->name("task.pause");
- Route::patch("task/{task}/done", [API\TaskController::class, "done"])->name("task.done");
- Route::patch("task/{task}/cancel", [API\TaskController::class, "cancel"])->name("task.cancel");
- Route::patch("task/{task}/wait", [API\TaskController::class, "wait"])->name("task.wait");
- Route::post("task-batch-create", [API\TaskController::class, "batchStore"])->name("task.batch-store");
- Route::patch("task/{task}/assign", [API\TaskController::class, "assign"])->name("task.assign");
- Route::post("user/user-batch-create", [API\UserController::class, "batchStore"])->name("user.batch-create");
- Route::put("user/status/{status}", [API\UserController::class, "status"])->name("user.status");
- //Route::patch("user/update-info", [API\UserController::class, "updateInfo"])->name("user.updateInfo");
- Route::get("custom-field-group", [API\CustomFieldController::class, "groups"])->name("custom-field.groups");
- Route::get("custom-field-group/naming-rule", [API\CustomFieldController::class, "nameRuleGroups"])->name("custom-field.nameRuleGroups");
- Route::get("naming-rule-enabled", [API\NameRuleController::class, "enabled"])
- ->name("naming-rule.enabled");
- Route::post("naming-rule/{naming_rule}/combination", [API\NameRuleController::class, "combinationSetting"])
- ->name("naming-rule.combination-setting");
- Route::get("naming-rule/{naming_rule}/combination/show", [API\NameRuleController::class, "combinationShow"])
- ->name("naming-rule.combination-show");
- Route::post("naming-rule/{name_rule}/autoname", [API\NameRuleController::class, "autoname"])
- ->name("name-rule.autoname");
- Route::get("team-member/{project}", [API\TeamMemberController::class, "members"])->name("team-member.list");
- Route::delete("team-member/{team_member}", [API\TeamMemberController::class, "destroy"])->name("team-member.destroy");
- Route::post("team-member/{project}/manage", [API\TeamMemberController::class, "manageMembers"])->name("team-member.manage-members");
- Route::get("folder-tree/{object_type}/{object_id}", [API\FolderController::class, "tree"])->name("folder.tree");
- Route::post("folder", [API\FolderController::class, "store"])->name("folder.store");
- Route::get("folder/{folder}", [API\FolderController::class, "show"])->name("folder.show");
- Route::patch("folder/{folder}", [API\FolderController::class, "update"])->name("folder.update");
- Route::delete("folder/{folder}", [API\FolderController::class, "destroy"])->name("folder.destroy");
- Route::get("folder-open", [API\FolderController::class, "open"])->name("folder.open");
- Route::get("folder/file-version-tree/{object_type}/{object_id}", [API\FolderController::class, "versionFileTreeByObject"])
- ->name("folder.file-version-tree-by-object");
- Route::patch("folder/{folder}/change-name", [API\FolderController::class, "changeName"])->name("folder.change-name");
- Route::get("folder/search/folder-file", [API\FolderController::class, "search"])->name("folder.search-folder-file");
- Route::post("requirement/batch", [API\RequirementController::class, "batchStore"])->name("requirement.batchStore");
- Route::get("plan-by-assets", [API\PlanController::class, "byAssets"])->name("plan.by-assets");
- Route::get("requirement-by-assets", [API\RequirementController::class, "byAssets"])->name("requirement.by-assets");
- Route::get("project-tree/{project_id}", [API\ProjectController::class, "treeIndex"])->name("project.project-tree");
- Route::get("project-link-requirements-group/{project_id}",[API\ProjectController::class, "requirementsLinkGroup"])->name("project.link-requirements-group");
- Route::get("action/{object_type}/history/{object_id}", [API\ActionController::class, "history"])->name("action.history");
- Route::post("action/{object_type}/comment/{object_id}", [API\ActionController::class, "comment"])->name("action.comment");
- Route::patch("action/{action}/comment", [API\ActionController::class, "updateComment"])->name("action.update-comment");
- Route::post("file-upload", [API\FileController::class, "upload"])->name("file.upload");
- Route::get("file/{object_type}/{object_id}", [API\FileController::class, "byObject"])->name("file.by-object");
- Route::post("file/{file}/download", [API\FileController::class, "download"])->name("file.download");
- Route::post("file/download-zip", [API\FileController::class, "downloadZip"])->name("file.download-zip");
- Route::get("file/download-all-latest/{object_type}/{object_id}", [API\FileController::class, "downloadAllLatest"])
- ->name("file.download-all-latest");
- Route::get("file/download/{uuid}/share-file", [API\FileController::class, "downloadShareFile"])
- ->name("file.download-share-file");
- Route::patch("file/{file}/change-name", [API\FileController::class, "changeName"])->name("file.change-name");
- Route::delete("file/{file}/destroy", [API\FileController::class, "destroy"])->name("file.destroy");
- Route::post("file/keep-directory-upload", [API\FileController::class, "keepDirectoryUpload"])->name("file.keep-directory-upload");
- Route::delete("file/{file}/hide", [API\FileController::class, "hide"])->name("file.hide");
- Route::get("notification", [API\NotificationController::class, "index"])->name("notification.index");
- Route::get("notification/unread", [API\NotificationController::class, "unread"])->name("notification.unread");
- Route::post("notification/mark-as-read", [API\NotificationController::class, "markAsRead"])->name("notification.mark-as-read");
- Route::get("container-linkage/{library_id}", [API\ContainerController::class, "linkage"])->name("container.linkage");
- Route::post("share-file", [API\ShareFileController::class, "store"])->name("share-file.store");
- Route::delete("share-file/{share_file}", [API\ShareFileController::class, "destroy"])
- ->name("share-file.destroy");
- Route::get("share-file/{object_type}/{object_id}", [API\ShareFileController::class, "byObject"])
- ->name("share-file.by-object");
- });
- });
|