fromis_9/frontend/src/api/admin/schedules.js

53 lines
1.4 KiB
JavaScript
Raw Normal View History

/**
* 어드민 일정 관리 API
*/
import { fetchAdminApi, fetchAdminFormData } from "../index";
// 일정 목록 조회 (월별)
export async function getSchedules(year, month) {
const data = await fetchAdminApi(`/api/schedules?year=${year}&month=${month}`);
// 날짜별 그룹화된 응답을 플랫 배열로 변환
const schedules = [];
for (const [date, dayData] of Object.entries(data)) {
for (const schedule of dayData.schedules) {
const category = schedule.category || {};
schedules.push({
...schedule,
date,
category_id: category.id,
category_name: category.name,
category_color: category.color,
});
}
}
return schedules;
}
// 일정 검색 (Meilisearch)
export async function searchSchedules(query) {
return fetchAdminApi(
`/api/admin/schedules/search?q=${encodeURIComponent(query)}`
);
}
// 일정 상세 조회
export async function getSchedule(id) {
return fetchAdminApi(`/api/admin/schedules/${id}`);
}
// 일정 생성
export async function createSchedule(formData) {
return fetchAdminFormData("/api/admin/schedules", formData, "POST");
}
// 일정 수정
export async function updateSchedule(id, formData) {
return fetchAdminFormData(`/api/admin/schedules/${id}`, formData, "PUT");
}
// 일정 삭제
export async function deleteSchedule(id) {
return fetchAdminApi(`/api/admin/schedules/${id}`, { method: "DELETE" });
}