mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-08 13:00:13 +02:00
164 lines
4.1 KiB
TypeScript
164 lines
4.1 KiB
TypeScript
import express, { Router } from 'express';
|
|
import { controller } from '@controllers/index';
|
|
import { authenticateAdmin } from '@middleware/authenticate-admin';
|
|
import { authenticateServerAdmin } from '@middleware/authenticate-server-admin';
|
|
import { authenticateServerEditor } from '@middleware/authenticate-server-editor';
|
|
import { authenticateServerViewer } from '@middleware/authenticate-server-viewer';
|
|
import { service } from '@services/index';
|
|
import { validateRequest, validation } from '@validations/index';
|
|
|
|
export const router: Router = express.Router({ mergeParams: true });
|
|
|
|
router
|
|
.route('/')
|
|
.get(
|
|
validateRequest(validation.servers.list),
|
|
controller.servers.getServerList
|
|
)
|
|
.post(
|
|
authenticateAdmin,
|
|
validateRequest(validation.servers.create),
|
|
controller.servers.createServer
|
|
);
|
|
|
|
router.route('/map').get(controller.servers.getServerListMap);
|
|
|
|
router
|
|
.route('/:serverId')
|
|
.get(
|
|
validateRequest(validation.servers.detail),
|
|
controller.servers.getServerDetail
|
|
)
|
|
.patch(
|
|
authenticateServerAdmin,
|
|
validateRequest(validation.servers.update),
|
|
controller.servers.updateServer
|
|
)
|
|
.delete(
|
|
authenticateAdmin,
|
|
validateRequest(validation.servers.deleteServer),
|
|
controller.servers.deleteServer
|
|
);
|
|
|
|
router
|
|
.route('/:serverId/refresh')
|
|
.get(
|
|
authenticateServerEditor,
|
|
validateRequest(validation.servers.refresh),
|
|
controller.servers.refreshServer
|
|
);
|
|
|
|
router
|
|
.route('/:serverId/scan')
|
|
.post(
|
|
authenticateServerAdmin,
|
|
validateRequest(validation.servers.scan),
|
|
controller.servers.quickScanServer
|
|
);
|
|
|
|
router
|
|
.route('/:serverId/full-scan')
|
|
.post(
|
|
authenticateServerAdmin,
|
|
validateRequest(validation.servers.scan),
|
|
controller.servers.fullScanServer
|
|
);
|
|
|
|
router
|
|
.route('/:serverId/url')
|
|
.post(
|
|
authenticateServerEditor,
|
|
validateRequest(validation.servers.createUrl),
|
|
controller.servers.createServerUrl
|
|
);
|
|
|
|
router.param('urlId', async (_req, _res, next, urlId) => {
|
|
await service.servers.findUrlById({ id: urlId });
|
|
next();
|
|
});
|
|
|
|
router
|
|
.route('/:serverId/url/:urlId')
|
|
.delete(
|
|
authenticateServerEditor,
|
|
validateRequest(validation.servers.deleteUrl),
|
|
controller.servers.deleteServerUrl
|
|
);
|
|
|
|
router
|
|
.route('/:serverId/url/:urlId/enable')
|
|
.post(
|
|
authenticateServerViewer,
|
|
validateRequest(validation.servers.enableUrl),
|
|
controller.servers.enableServerUrl
|
|
);
|
|
|
|
router
|
|
.route('/:serverId/url/:urlId/disable')
|
|
.post(
|
|
authenticateServerViewer,
|
|
validateRequest(validation.servers.disableUrl),
|
|
controller.servers.disableServerUrl
|
|
);
|
|
|
|
router
|
|
.route('/:serverId/permissions')
|
|
.post(
|
|
authenticateServerAdmin,
|
|
validateRequest(validation.servers.addServerPermission),
|
|
controller.servers.addServerPermission
|
|
);
|
|
|
|
router
|
|
.route('/:serverId/permissions/:permissionId')
|
|
.patch(
|
|
authenticateServerAdmin,
|
|
validateRequest(validation.servers.updateServerPermission),
|
|
controller.servers.updateServerPermission
|
|
)
|
|
.delete(
|
|
authenticateServerAdmin,
|
|
validateRequest(validation.servers.deleteServerPermission),
|
|
controller.servers.deleteServerPermission
|
|
);
|
|
|
|
router.param('folderId', async (_req, _res, next, folderId) => {
|
|
await service.servers.findFolderById({ id: folderId });
|
|
next();
|
|
});
|
|
|
|
router
|
|
.route('/:serverId/folder/:folderId')
|
|
.delete(
|
|
authenticateServerAdmin,
|
|
validateRequest(validation.servers.deleteFolder),
|
|
controller.servers.deleteServerFolder
|
|
);
|
|
|
|
router
|
|
.route('/:serverId/folder/:folderId/enable')
|
|
.post(
|
|
authenticateServerAdmin,
|
|
validateRequest(validation.servers.enableFolder),
|
|
controller.servers.enableServerFolder
|
|
);
|
|
|
|
router
|
|
.route('/:serverId/folder/:folderId/disable')
|
|
.post(
|
|
authenticateServerAdmin,
|
|
validateRequest(validation.servers.disableFolder),
|
|
controller.servers.disableServerFolder
|
|
);
|
|
|
|
router
|
|
.route('/:serverId/folder/:folderId/permissions')
|
|
.post(authenticateServerAdmin, controller.servers.addServerFolderPermission);
|
|
|
|
router
|
|
.route('/:serverId/folder/:folderId/permissions/:folderPermissionId')
|
|
.delete(
|
|
authenticateServerAdmin,
|
|
controller.servers.deleteServerFolderPermission
|
|
);
|