39 lines
1.3 KiB
JavaScript
39 lines
1.3 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
const { getApiLogs, getApiLogStats } = require('../database/log-queries');
|
|
const { verifyToken, requireAdmin } = require('../middleware/auth');
|
|
|
|
// API 로그 목록 조회 (관리자만)
|
|
router.get('/api-logs', verifyToken, requireAdmin, async (req, res) => {
|
|
try {
|
|
const page = parseInt(req.query.page) || 1;
|
|
const limit = parseInt(req.query.limit) || 50;
|
|
const filters = {
|
|
startDate: req.query.startDate,
|
|
endDate: req.query.endDate,
|
|
method: req.query.method,
|
|
endpoint: req.query.endpoint,
|
|
username: req.query.username
|
|
};
|
|
|
|
const result = await getApiLogs(page, limit, filters);
|
|
res.json(result);
|
|
} catch (error) {
|
|
console.error('API 로그 조회 오류:', error);
|
|
res.status(500).json({ error: 'API 로그 조회에 실패했습니다.' });
|
|
}
|
|
});
|
|
|
|
// API 로그 통계 조회 (관리자만)
|
|
router.get('/api-logs/stats', verifyToken, requireAdmin, async (req, res) => {
|
|
try {
|
|
const stats = await getApiLogStats();
|
|
res.json(stats);
|
|
} catch (error) {
|
|
console.error('API 로그 통계 조회 오류:', error);
|
|
res.status(500).json({ error: 'API 로그 통계 조회에 실패했습니다.' });
|
|
}
|
|
});
|
|
|
|
module.exports = router;
|