// /js/project-analysis-api.js import { apiGet } from './api-helper.js'; /** * 분석 페이지에 필요한 모든 초기 데이터(마스터 데이터)를 병렬로 가져옵니다. * @returns {Promise<{workers: Array, projects: Array, tasks: Array}>} */ export async function getMasterData() { try { const [workers, projects, tasks] = await Promise.all([ apiGet('/workers'), apiGet('/projects'), apiGet('/tasks') ]); return { workers, projects, tasks }; } catch (error) { console.error('마스터 데이터 로딩 실패:', error); // 하나라도 실패하면 페이지 기능에 문제가 생길 수 있으므로 에러를 던집니다. throw new Error('페이지 초기화에 필요한 데이터를 불러오는 데 실패했습니다.'); } } /** * 지정된 기간의 작업 보고서 데이터를 가져옵니다. * 백엔드에 집계 API가 있다면 그쪽을 사용하는 것이 더 효율적입니다. * (예: /api/analysis/reports?startDate=...&endDate=...) * 현재는 기존 방식을 유지합니다. * @param {string} startDate - 시작일 (YYYY-MM-DD) * @param {string} endDate - 종료일 (YYYY-MM-DD) * @returns {Promise} */ export async function getWorkReports(startDate, endDate) { try { // API 엔드포인트를 명확하게 수정합니다. // 기존: /workreports?start=... // 변경: /daily-work-reports/search?startDate=...&endDate=... (가정) // 우선 기존 URL 구조를 최대한 따르되, 좀 더 명시적인 경로로 변경 제안 const reports = await apiGet(`/workreports/search?startDate=${startDate}&endDate=${endDate}`); return reports; } catch (error) { console.error('작업 보고서 데이터 로딩 실패:', error); throw new Error(`작업 보고서 데이터를 불러오는 데 실패했습니다: ${error.message}`); } }