Files
weeklyreport/backend/api/report/weekly/current-week.get.ts
2026-01-04 17:24:47 +09:00

47 lines
1.4 KiB
TypeScript

import { query } from '../../../utils/db'
import { getWeekInfo, formatWeekString } from '../../../utils/week-calc'
/**
* 이번 주 보고서 현황 조회
* GET /api/report/weekly/current-week
*/
export default defineEventHandler(async (event) => {
const userId = getCookie(event, 'user_id')
if (!userId) {
throw createError({ statusCode: 401, message: '로그인이 필요합니다.' })
}
const weekInfo = getWeekInfo()
// 이번 주 내 보고서 목록
const reports = await query(`
SELECT r.*, p.project_name, p.project_code
FROM wr_weekly_report_detail r
JOIN wr_project_info p ON r.project_id = p.project_id
WHERE r.author_id = $1 AND r.report_year = $2 AND r.report_week = $3
ORDER BY p.project_name
`, [parseInt(userId), weekInfo.year, weekInfo.week])
return {
weekInfo: {
year: weekInfo.year,
week: weekInfo.week,
weekString: formatWeekString(weekInfo.year, weekInfo.week),
startDate: weekInfo.startDateStr,
endDate: weekInfo.endDateStr
},
reports: reports.map((r: any) => ({
reportId: r.report_id,
projectId: r.project_id,
projectName: r.project_name,
projectCode: r.project_code,
reportStatus: r.report_status,
workDescription: r.work_description,
planDescription: r.plan_description,
issueDescription: r.issue_description,
workHours: r.work_hours,
updatedAt: r.updated_at
}))
}
})