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

41 lines
1.6 KiB
TypeScript

/**
* 메일 수신 라우트 (Step 2 - 기본 구현)
*/
import express from 'express';
import { MailReceiveBasicController } from '../controllers/mailReceiveBasicController';
import { authenticateToken } from '../middleware/authMiddleware';
const router = express.Router();
// 모든 메일 수신 라우트에 인증 미들웨어 적용
router.use(authenticateToken);
const controller = new MailReceiveBasicController();
// 오늘 수신 메일 수 조회 (통계) - 가장 먼저 정의 (가장 구체적)
router.get('/today-count', (req, res) => controller.getTodayReceivedCount(req, res));
// 첨부파일 다운로드 - 매우 구체적인 경로
router.get('/:accountId/:seqno/attachment/:index', (req, res) => {
console.log(`📎 첨부파일 라우트 핸들러 진입!`);
console.log(` accountId: ${req.params.accountId}`);
console.log(` seqno: ${req.params.seqno}`);
console.log(` index: ${req.params.index}`);
controller.downloadAttachment(req, res);
});
// 메일 읽음 표시 - 구체적인 경로
router.post('/:accountId/:seqno/mark-read', (req, res) => controller.markAsRead(req, res));
// 메일 상세 조회 - /:accountId보다 먼저 정의해야 함
router.get('/:accountId/:seqno', (req, res) => controller.getMailDetail(req, res));
// IMAP 연결 테스트 - /:accountId보다 먼저 정의해야 함
router.post('/:accountId/test-imap', (req, res) => controller.testImapConnection(req, res));
// 메일 목록 조회 - 가장 마지막에 정의 (가장 일반적)
router.get('/:accountId', (req, res) => controller.getMailList(req, res));
export default router;