Files
myDrive/backend/express-routers/file-router.ts
T
2025-01-10 09:55:34 -05:00

215 lines
4.0 KiB
TypeScript

import { Router } from "express";
import auth from "../middleware/auth";
import FileController from "../controllers/file-controller";
import authFullUser from "../middleware/authFullUser";
import authStreamVideo from "../middleware/authStreamVideo";
import {
deleteFileValidationRules,
deleteMultiValidationRules,
downloadFileValidationRules,
getFileInfoValidationRules,
getListValidationRules,
getPublicDownloadValidationRules,
getQuickListValidationRules,
getSuggestedListValidationRules,
getThumbnailValidationRules,
makePrivateValidationRules,
makePublicValidationRules,
moveFileValidationRules,
moveMultiValidationRules,
removeVideoStreamTokenValidationRules,
renameFileValidationRules,
restoreFileValidationRules,
restoreMultiValidationRules,
streamVideoValidationRules,
trashFileValidationRules,
trashMultiValidationRules,
} from "../middleware/files/files-middleware";
const fileController = new FileController();
const router = Router();
// GET
router.get(
"/file-service/thumbnail/:id",
authFullUser,
getThumbnailValidationRules,
fileController.getThumbnail
);
router.get(
"/file-service/full-thumbnail/:id",
authFullUser,
getThumbnailValidationRules,
fileController.getFullThumbnail
);
router.get(
"/file-service/public/download/:id/:tempToken",
getPublicDownloadValidationRules,
fileController.getPublicDownload
);
router.get(
"/file-service/public/info/:id/:tempToken",
getPublicDownloadValidationRules,
fileController.getPublicInfo
);
router.get(
"/file-service/info/:id",
auth,
getFileInfoValidationRules,
fileController.getFileInfo
);
router.get(
"/file-service/quick-list",
auth,
getQuickListValidationRules,
fileController.getQuickList
);
router.get(
"/file-service/list",
auth,
getListValidationRules,
fileController.getList
);
router.get(
"/file-service/download/access-token-stream-video",
authFullUser,
fileController.getAccessTokenStreamVideo
);
router.get(
"/file-service/stream-video/:id",
authStreamVideo,
streamVideoValidationRules,
fileController.streamVideo
);
router.delete(
"/file-service/remove-stream-video-token",
authStreamVideo,
fileController.removeStreamVideoAccessToken
);
router.get(
"/file-service/download/:id",
authFullUser,
downloadFileValidationRules,
fileController.downloadFile
);
router.get(
"/file-service/suggested-list",
auth,
getSuggestedListValidationRules,
fileController.getSuggestedList
);
// PATCH
router.patch(
"/file-service/make-public/:id",
authFullUser,
makePublicValidationRules,
fileController.makePublic
);
router.patch(
"/file-service/make-one/:id",
auth,
makePublicValidationRules,
fileController.makeOneTimePublic
);
router.patch(
"/file-service/rename",
auth,
renameFileValidationRules,
fileController.renameFile
);
router.patch(
"/file-service/move",
auth,
moveFileValidationRules,
fileController.moveFile
);
router.patch(
"/file-service/move-multi",
auth,
moveMultiValidationRules,
fileController.moveMultiFile
);
router.patch(
"/file-service/trash",
auth,
trashFileValidationRules,
fileController.trashFile
);
router.patch(
"/file-service/trash-multi",
auth,
trashMultiValidationRules,
fileController.trashMulti
);
router.patch(
"/file-service/restore",
auth,
restoreFileValidationRules,
fileController.restoreFile
);
router.patch(
"/file-service/restore-multi",
auth,
restoreMultiValidationRules,
fileController.restoreMulti
);
router.patch(
"/file-service/remove-link/:id",
auth,
makePrivateValidationRules,
fileController.removeLink
);
// DELETE
router.delete(
"/file-service/remove/token-video/:id",
auth,
removeVideoStreamTokenValidationRules,
fileController.removeTempToken
);
router.delete(
"/file-service/remove",
auth,
deleteFileValidationRules,
fileController.deleteFile
);
router.delete(
"/file-service/remove-multi",
auth,
deleteMultiValidationRules,
fileController.deleteMulti
);
// POST
router.post("/file-service/upload", authFullUser, fileController.uploadFile);
export default router;