Files
TK-FB-Project/synology_deployment/api/controllers/dailyIssueReportController.js
Hyungi Ahn a9bce9d20b fix: 캘린더 모달 중복 카드 문제 및 삭제 권한 개선
- monthly_worker_status 조회 시 GROUP BY로 중복 데이터 합산
- 작업보고서 삭제 권한을 그룹장 이상으로 제한 (admin, system, group_leader)
- 중복 데이터 정리를 위한 마이그레이션 SQL 추가 (009_fix_duplicate_monthly_status.sql)
- synology_deployment 버전에도 동일 수정 적용
2025-12-02 13:08:44 +09:00

58 lines
1.9 KiB
JavaScript

// /controllers/dailyIssueReportController.js
const dailyIssueReportService = require('../services/dailyIssueReportService');
/**
* 1. CREATE: 일일 이슈 보고서 생성 (Service Layer 사용)
*/
const createDailyIssueReport = async (req, res) => {
try {
// 프론트엔드에서 worker_ids로 보내주기로 약속함
const issueData = { ...req.body, worker_ids: req.body.worker_ids || req.body.worker_id };
const result = await dailyIssueReportService.createDailyIssueReportService(issueData);
res.status(201).json({ success: true, ...result });
} catch (err) {
console.error('💥 이슈 보고서 생성 컨트롤러 오류:', err);
res.status(400).json({ success: false, error: err.message });
}
};
/**
* 2. READ BY DATE: 날짜별 이슈 조회 (Service Layer 사용)
*/
const getDailyIssuesByDate = async (req, res) => {
try {
const { date } = req.query;
const issues = await dailyIssueReportService.getDailyIssuesByDateService(date);
res.json(issues);
} catch (err) {
console.error('💥 이슈 보고서 조회 컨트롤러 오류:', err);
res.status(500).json({ success: false, error: err.message });
}
};
/**
* 3. DELETE: 이슈 보고서 삭제 (Service Layer 사용)
*/
const removeDailyIssue = async (req, res) => {
try {
const { id } = req.params;
const result = await dailyIssueReportService.removeDailyIssueService(id);
res.json({ success: true, ...result });
} catch (err) {
console.error('💥 이슈 보고서 삭제 컨트롤러 오류:', err);
const statusCode = err.statusCode || 500;
res.status(statusCode).json({ success: false, error: err.message });
}
};
// 레거시 함수들은 더 이상 라우팅되지 않으므로 제거하거나 주석 처리 가능
// exports.getDailyIssueById = ...
// exports.updateDailyIssue = ...
module.exports = {
createDailyIssueReport,
getDailyIssuesByDate,
removeDailyIssue,
};