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

92 lines
2.1 KiB
JavaScript

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<Array<{id:number,nickname:string}>>}
*/
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
}