41 lines
1.6 KiB
TypeScript
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;
|
|
|