/** * 메일 수신 라우트 (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;