90 lines
2.8 KiB
JavaScript
90 lines
2.8 KiB
JavaScript
import Vue from "vue";
|
|
|
|
async function getAudioContentSeriesList(page) {
|
|
return Vue.axios.get("/admin/audio-content/series?page=" + (page - 1) + "&size=10");
|
|
}
|
|
|
|
async function getAudioContentSeriesGenreList() {
|
|
return Vue.axios.get("/admin/audio-content/series/genre");
|
|
}
|
|
|
|
async function createAudioContentSeriesGenre(genre, is_adult) {
|
|
return Vue.axios.post("/admin/audio-content/series/genre", { genre: genre, isAdult: is_adult });
|
|
}
|
|
|
|
async function updateAudioContentSeriesGenre(request) {
|
|
return Vue.axios.put("/admin/audio-content/series/genre", request);
|
|
}
|
|
|
|
async function updateAudioContentSeriesGenreOrders(ids) {
|
|
return Vue.axios.put("/admin/audio-content/series/genre/orders", { ids: ids });
|
|
}
|
|
|
|
async function searchSeriesList(searchWord) {
|
|
return Vue.axios.get("/admin/audio-content/series/search?search_word=" + searchWord);
|
|
}
|
|
|
|
// 시리즈 수정
|
|
async function updateAudioContentSeries(request) {
|
|
return Vue.axios.put("/admin/audio-content/series", request);
|
|
}
|
|
|
|
// ========================
|
|
// 시리즈 배너 API
|
|
// ========================
|
|
// 배너 리스트 조회
|
|
async function getSeriesBannerList(page = 1, size = 20) {
|
|
return Vue.axios.get("/admin/audio-content/series/banner/list", {
|
|
params: { page: page - 1, size }
|
|
});
|
|
}
|
|
|
|
// 배너 등록
|
|
async function createSeriesBanner(bannerData) {
|
|
const formData = new FormData();
|
|
if (bannerData.image) formData.append("image", bannerData.image);
|
|
const requestData = { seriesId: bannerData.seriesId };
|
|
formData.append("request", JSON.stringify(requestData));
|
|
return Vue.axios.post("/admin/audio-content/series/banner/register", formData, {
|
|
headers: { "Content-Type": "multipart/form-data" }
|
|
});
|
|
}
|
|
|
|
// 배너 수정
|
|
async function updateSeriesBanner(bannerData) {
|
|
const formData = new FormData();
|
|
if (bannerData.image) formData.append("image", bannerData.image);
|
|
const requestData = { seriesId: bannerData.seriesId, bannerId: bannerData.bannerId };
|
|
formData.append("request", JSON.stringify(requestData));
|
|
return Vue.axios.put("/admin/audio-content/series/banner/update", formData, {
|
|
headers: { "Content-Type": "multipart/form-data" }
|
|
});
|
|
}
|
|
|
|
// 배너 삭제
|
|
async function deleteSeriesBanner(bannerId) {
|
|
// 백엔드 사양이 불명확하여 쿼리 파라미터로 전송
|
|
return Vue.axios.delete("/admin/audio-content/series/banner/" + bannerId);
|
|
}
|
|
|
|
// 배너 순서 변경
|
|
async function updateSeriesBannerOrder(ids) {
|
|
return Vue.axios.put("/admin/audio-content/series/banner/orders", { ids });
|
|
}
|
|
|
|
export {
|
|
getAudioContentSeriesList,
|
|
getAudioContentSeriesGenreList,
|
|
createAudioContentSeriesGenre,
|
|
updateAudioContentSeriesGenre,
|
|
updateAudioContentSeriesGenreOrders,
|
|
searchSeriesList,
|
|
updateAudioContentSeries,
|
|
// series banner
|
|
getSeriesBannerList,
|
|
createSeriesBanner,
|
|
updateSeriesBanner,
|
|
deleteSeriesBanner,
|
|
updateSeriesBannerOrder
|
|
};
|