Files
sodalive-vuejs-admin/src/api/audio_content_series.js

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
};