ERP-node/backend-node/src/routes/fileRoutes.ts

96 lines
2.2 KiB
TypeScript
Raw Normal View History

2025-09-05 21:52:19 +09:00
import { Router } from "express";
import {
uploadFiles,
deleteFile,
getFileList,
2025-09-29 13:29:03 +09:00
getComponentFiles,
2025-09-05 21:52:19 +09:00
downloadFile,
2025-09-08 13:10:09 +09:00
previewFile,
getLinkedFiles,
2025-09-05 21:52:19 +09:00
uploadMiddleware,
2025-09-29 13:29:03 +09:00
generateTempToken,
getFileByToken,
2025-11-05 15:50:29 +09:00
setRepresentativeFile,
2025-09-05 21:52:19 +09:00
} from "../controllers/fileController";
2025-09-05 12:04:13 +09:00
import { authenticateToken } from "../middleware/authMiddleware";
2025-09-05 21:52:19 +09:00
const router = Router();
2025-09-05 12:04:13 +09:00
2025-09-29 13:29:03 +09:00
// 공개 접근 라우트 (인증 불필요)
/**
* @route GET /api/files/public/:token
* @desc (Google Docs Viewer용)
* @access Public
*/
router.get("/public/:token", getFileByToken);
2025-09-05 21:52:19 +09:00
// 모든 파일 API는 인증 필요
2025-09-05 12:04:13 +09:00
router.use(authenticateToken);
/**
2025-09-05 21:52:19 +09:00
* @route POST /api/files/upload
* @desc (attach_file_info )
* @access Private
2025-09-05 12:04:13 +09:00
*/
2025-09-05 21:52:19 +09:00
router.post("/upload", uploadMiddleware, uploadFiles);
2025-09-05 12:04:13 +09:00
/**
2025-09-05 21:52:19 +09:00
* @route GET /api/files
* @desc
* @query targetObjid, docType, companyCode
* @access Private
2025-09-05 12:04:13 +09:00
*/
2025-09-05 21:52:19 +09:00
router.get("/", getFileList);
2025-09-05 12:04:13 +09:00
2025-09-29 13:29:03 +09:00
/**
* @route GET /api/files/component-files
* @desc 릿
* @query screenId, componentId, tableName, recordId, columnName
* @access Private
*/
router.get("/component-files", getComponentFiles);
/**
* @route GET /api/files/linked/:tableName/:recordId
* @desc
* @access Private
*/
router.get("/linked/:tableName/:recordId", getLinkedFiles);
2025-09-05 14:52:10 +09:00
/**
2025-09-05 21:52:19 +09:00
* @route DELETE /api/files/:objid
* @desc ( )
* @access Private
2025-09-05 14:52:10 +09:00
*/
2025-09-05 21:52:19 +09:00
router.delete("/:objid", deleteFile);
2025-09-05 14:52:10 +09:00
2025-09-08 13:10:09 +09:00
/**
* @route GET /api/files/preview/:objid
* @desc ( )
* @access Private
*/
router.get("/preview/:objid", previewFile);
2025-09-05 12:04:13 +09:00
/**
2025-09-05 21:52:19 +09:00
* @route GET /api/files/download/:objid
* @desc
* @access Private
2025-09-05 12:04:13 +09:00
*/
2025-09-05 21:52:19 +09:00
router.get("/download/:objid", downloadFile);
2025-09-05 12:04:13 +09:00
2025-09-29 13:29:03 +09:00
/**
* @route POST /api/files/temp-token/:objid
* @desc Google Docs Viewer용
* @access Private
*/
router.post("/temp-token/:objid", generateTempToken);
2025-11-05 15:50:29 +09:00
/**
* @route PUT /api/files/representative/:objid
* @desc
* @access Private
*/
router.put("/representative/:objid", setRepresentativeFile);
2025-09-05 12:04:13 +09:00
export default router;