import Vue from 'vue'; async function login(email, password) { return Vue.axios.post('/member/login', { email, password, isAdmin: true, }); } async function getMemberList(page) { return Vue.axios.get( "/admin/member/list?page=" + (page - 1) + "&size=20" ) } async function searchMember(searchWord, page) { return Vue.axios.get( "/admin/member/search?search_word=" + searchWord + "&page=" + (page - 1) + "&size=20" ) } async function getCreatorList(page) { return Vue.axios.get( "/admin/member/creator/list?page=" + (page - 1) + "&size=20" ) } async function searchCreator(searchWord, page) { return Vue.axios.get( "/admin/member/creator/search?search_word=" + searchWord + "&page=" + (page - 1) + "&size=20" ) } async function updateMember(id, user_type) { const request = {id, userType: user_type} return Vue.axios.put("/admin/member", request) } async function getCreatorAllList() { return Vue.axios.get("/admin/member/creator/all/list") } async function resetPassword(id) { const request = {memberId: id} return Vue.axios.post("/admin/member/password/reset", request) } /** * 닉네임으로 회원 검색 API * - 서버 구현 차이를 흡수하기 위해 nickname, search_word 두 파라미터 모두 전송 * - 응답은 다음 두 형태를 모두 허용하고 배열로 정규화하여 반환 * 1) [{ id, nickname }, ...] * 2) { data: [{ id, nickname }, ...] } * @param {string} query * @returns {Promise>} */ async function searchMembersByNickname(query) { try { const res = await Vue.axios.get('/admin/member/search-by-nickname', { params: { search_word: query } }) if (res && Array.isArray(res.data)) { return res.data } if (res && res.data && Array.isArray(res.data.data)) { return res.data.data } return [] } catch (e) { return [] } } export { login, getMemberList, searchMember, getCreatorList, searchCreator, updateMember, getCreatorAllList, resetPassword, searchMembersByNickname }