352 lines
8.9 KiB
JavaScript
352 lines
8.9 KiB
JavaScript
import apiClient from './api';
|
|
|
|
/**
|
|
* 관리자 API 서비스
|
|
*/
|
|
const adminService = {
|
|
/**
|
|
* 모든 클럽 목록 조회
|
|
* @returns {Promise} - 클럽 목록
|
|
*/
|
|
getClubs() {
|
|
return apiClient.get('/api/admin/clubs');
|
|
},
|
|
|
|
/**
|
|
* 모든 클럽 조회
|
|
* @returns {Promise} - 클럽 목록
|
|
*/
|
|
getAllClubs() {
|
|
return apiClient.get('/api/admin/clubs');
|
|
},
|
|
|
|
/**
|
|
* 특정 클럽 조회
|
|
* @param {Number} id - 클럽 ID
|
|
* @returns {Promise} - 클럽 정보
|
|
*/
|
|
getClubById(id) {
|
|
return apiClient.get(`/api/admin/clubs/${id}`);
|
|
},
|
|
|
|
/**
|
|
* 클럽 정보 업데이트
|
|
* @param {Number} id - 클럽 ID
|
|
* @param {Object} clubData - 업데이트할 클럽 정보
|
|
* @returns {Promise} - 업데이트된 클럽 정보
|
|
*/
|
|
updateClub(id, clubData) {
|
|
return apiClient.put(`/api/admin/clubs/${id}`, clubData);
|
|
},
|
|
|
|
/**
|
|
* 클럽 삭제
|
|
* @param {Number} id - 클럽 ID
|
|
* @returns {Promise} - 삭제 결과
|
|
*/
|
|
deleteClub(id) {
|
|
return apiClient.delete(`/api/admin/clubs/${id}`);
|
|
},
|
|
|
|
/**
|
|
* 클럽 멤버 조회
|
|
* @param {Number} id - 클럽 ID
|
|
* @returns {Promise} - 클럽 멤버 목록
|
|
*/
|
|
getClubMembers(id) {
|
|
return apiClient.get(`/api/admin/clubs/${id}/members`);
|
|
},
|
|
|
|
/**
|
|
* 클럽 멤버 추가
|
|
* @param {Number} id - 클럽 ID
|
|
* @param {Object} memberData - 멤버 정보
|
|
* @returns {Promise} - 추가된 멤버 정보
|
|
*/
|
|
addClubMember(id, memberData) {
|
|
return apiClient.post(`/api/admin/clubs/${id}/members`, memberData);
|
|
},
|
|
|
|
/**
|
|
* 클럽 멤버 정보 업데이트
|
|
* @param {Number} clubId - 클럽 ID
|
|
* @param {Number} memberId - 멤버 ID
|
|
* @param {Object} memberData - 업데이트할 멤버 정보
|
|
* @returns {Promise} - 업데이트된 멤버 정보
|
|
*/
|
|
updateClubMember(clubId, memberId, memberData) {
|
|
return apiClient.put(`/api/admin/clubs/${clubId}/members/${memberId}`, memberData);
|
|
},
|
|
|
|
/**
|
|
* 클럽 회원 삭제
|
|
* @param {Number} clubId - 클럽 ID
|
|
* @param {Number} memberId - 멤버 ID
|
|
* @returns {Promise} - 삭제 결과
|
|
*/
|
|
deleteClubMember(clubId, memberId) {
|
|
return apiClient.delete(`/api/admin/clubs/${clubId}/members/${memberId}`);
|
|
},
|
|
|
|
/**
|
|
* 모든 사용자 조회
|
|
* @returns {Promise} - 사용자 목록
|
|
*/
|
|
getAllUsers() {
|
|
return apiClient.get('/api/admin/users');
|
|
},
|
|
|
|
/**
|
|
* 특정 사용자 조회
|
|
* @param {Number} id - 사용자 ID
|
|
* @returns {Promise} - 사용자 정보
|
|
*/
|
|
getUserById(id) {
|
|
return apiClient.get(`/api/admin/users/${id}`);
|
|
},
|
|
|
|
/**
|
|
* 사용자 정보 업데이트
|
|
* @param {Number} id - 사용자 ID
|
|
* @param {Object} userData - 업데이트할 사용자 정보
|
|
* @returns {Promise} - 업데이트된 사용자 정보
|
|
*/
|
|
updateUser(id, userData) {
|
|
return apiClient.put(`/api/admin/users/${id}`, userData);
|
|
},
|
|
|
|
/**
|
|
* 사용자 삭제
|
|
* @param {Number} id - 사용자 ID
|
|
* @returns {Promise} - 삭제 결과
|
|
*/
|
|
deleteUser(id) {
|
|
return apiClient.delete(`/api/admin/users/${id}`);
|
|
},
|
|
|
|
/**
|
|
* 모든 이벤트 조회
|
|
* @returns {Promise} - 이벤트 목록
|
|
*/
|
|
getAllEvents() {
|
|
return apiClient.get('/api/admin/events');
|
|
},
|
|
|
|
/**
|
|
* 특정 이벤트 조회
|
|
* @param {Number} id - 이벤트 ID
|
|
* @returns {Promise} - 이벤트 정보
|
|
*/
|
|
getEventById(id) {
|
|
return apiClient.get(`/api/admin/events/${id}`);
|
|
},
|
|
|
|
/**
|
|
* 새 이벤트 생성
|
|
* @param {Object} eventData - 이벤트 정보
|
|
* @returns {Promise} - 생성된 이벤트 정보
|
|
*/
|
|
createEvent(eventData) {
|
|
return apiClient.post('/api/admin/events', eventData);
|
|
},
|
|
|
|
/**
|
|
* 이벤트 정보 업데이트
|
|
* @param {Number} id - 이벤트 ID
|
|
* @param {Object} eventData - 업데이트할 이벤트 정보
|
|
* @returns {Promise} - 업데이트된 이벤트 정보
|
|
*/
|
|
updateEvent(id, eventData) {
|
|
return apiClient.put(`/api/admin/events/${id}`, eventData);
|
|
},
|
|
|
|
/**
|
|
* 이벤트 삭제
|
|
* @param {Number} id - 이벤트 ID
|
|
* @returns {Promise} - 삭제 결과
|
|
*/
|
|
deleteEvent(id) {
|
|
return apiClient.delete(`/api/admin/events/${id}`);
|
|
},
|
|
|
|
/**
|
|
* 이벤트 참가자 목록 조회
|
|
* @param {Number} eventId - 이벤트 ID
|
|
* @returns {Promise} - 참가자 목록
|
|
*/
|
|
getEventParticipants(eventId) {
|
|
return apiClient.get(`/api/admin/events/${eventId}/participants`);
|
|
},
|
|
|
|
/**
|
|
* 이벤트 참가자 추가
|
|
* @param {Number} eventId - 이벤트 ID
|
|
* @param {Number} userId - 사용자 ID
|
|
* @returns {Promise} - 추가된 참가자 정보
|
|
*/
|
|
addEventParticipant(eventId, userId) {
|
|
return apiClient.post(`/api/admin/events/${eventId}/participants`, { userId });
|
|
},
|
|
|
|
/**
|
|
* 이벤트 참가자 상태 업데이트
|
|
* @param {Number} eventId - 이벤트 ID
|
|
* @param {Number} participantId - 참가자 ID
|
|
* @param {String} status - 새로운 상태
|
|
* @returns {Promise} - 업데이트된 참가자 정보
|
|
*/
|
|
updateEventParticipantStatus(eventId, participantId, status) {
|
|
return apiClient.put(`/api/admin/events/${eventId}/participants/${participantId}`, { status });
|
|
},
|
|
|
|
/**
|
|
* 이벤트 참가자 제거
|
|
* @param {Number} eventId - 이벤트 ID
|
|
* @param {Number} participantId - 참가자 ID
|
|
* @returns {Promise} - 제거 결과
|
|
*/
|
|
removeEventParticipant(eventId, participantId) {
|
|
return apiClient.delete(`/api/admin/events/${eventId}/participants/${participantId}`);
|
|
},
|
|
|
|
/**
|
|
* 구독 플랜 목록 조회
|
|
* @returns {Promise} - 구독 플랜 목록
|
|
*/
|
|
getPlans() {
|
|
return apiClient.get('/api/admin/subscriptions/plans');
|
|
},
|
|
|
|
/**
|
|
* 특정 구독 플랜 조회
|
|
* @param {Number} id - 구독 플랜 ID
|
|
* @returns {Promise} - 구독 플랜 정보
|
|
*/
|
|
getPlanById(id) {
|
|
return apiClient.get(`/api/admin/subscriptions/plans/${id}`);
|
|
},
|
|
|
|
/**
|
|
* 새 구독 플랜 생성
|
|
* @param {Object} planData - 구독 플랜 정보
|
|
* @returns {Promise} - 생성된 구독 플랜 정보
|
|
*/
|
|
createPlan(planData) {
|
|
return apiClient.post('/api/admin/subscriptions/plans', planData);
|
|
},
|
|
|
|
/**
|
|
* 구독 플랜 정보 업데이트
|
|
* @param {Number} id - 구독 플랜 ID
|
|
* @param {Object} planData - 업데이트할 구독 플랜 정보
|
|
* @returns {Promise} - 업데이트된 구독 플랜 정보
|
|
*/
|
|
updatePlan(id, planData) {
|
|
return apiClient.put(`/api/admin/subscriptions/plans/${id}`, planData);
|
|
},
|
|
|
|
/**
|
|
* 구독 플랜 삭제
|
|
* @param {Number} id - 구독 플랜 ID
|
|
* @returns {Promise} - 삭제 결과
|
|
*/
|
|
deletePlan(id) {
|
|
return apiClient.delete(`/api/admin/subscriptions/plans/${id}`);
|
|
},
|
|
|
|
/**
|
|
* 모든 구독 목록 조회
|
|
* @returns {Promise} - 구독 목록
|
|
*/
|
|
getSubscriptions() {
|
|
return apiClient.get('/api/admin/subscriptions');
|
|
},
|
|
|
|
/**
|
|
* 구독 플랜의 구독 목록 조회
|
|
* @param {Number} planId - 구독 플랜 ID
|
|
* @returns {Promise} - 구독 목록
|
|
*/
|
|
getPlanSubscriptions(planId) {
|
|
return apiClient.get(`/api/admin/subscriptions/plans/${planId}/subscriptions`);
|
|
},
|
|
|
|
/**
|
|
* 모든 기능 목록 조회
|
|
* @returns {Promise} - 기능 목록
|
|
*/
|
|
getFeatures() {
|
|
return apiClient.get('/api/admin/features');
|
|
},
|
|
|
|
/**
|
|
* 새 구독 생성
|
|
* @param {Object} subscriptionData - 구독 정보
|
|
* @returns {Promise} - 생성된 구독 정보
|
|
*/
|
|
createSubscription(subscriptionData) {
|
|
return apiClient.post('/api/admin/subscriptions', subscriptionData);
|
|
},
|
|
|
|
/**
|
|
* 구독 정보 업데이트
|
|
* @param {Number} id - 구독 ID
|
|
* @param {Object} subscriptionData - 업데이트할 구독 정보
|
|
* @returns {Promise} - 업데이트된 구독 정보
|
|
*/
|
|
updateSubscription(id, subscriptionData) {
|
|
return apiClient.put(`/api/admin/subscriptions/${id}`, subscriptionData);
|
|
},
|
|
|
|
/**
|
|
* 구독 삭제
|
|
* @param {Number} id - 구독 ID
|
|
* @returns {Promise} - 삭제 결과
|
|
*/
|
|
deleteSubscription(id) {
|
|
return apiClient.delete(`/api/admin/subscriptions/${id}`);
|
|
},
|
|
|
|
/**
|
|
* 대시보드 데이터 조회
|
|
* @returns {Promise} - 대시보드 데이터
|
|
*/
|
|
getDashboardData() {
|
|
return apiClient.get('/api/admin/dashboard');
|
|
},
|
|
|
|
/**
|
|
* 최근 활동 조회
|
|
* @returns {Promise} - 최근 활동 목록
|
|
*/
|
|
getRecentActivities() {
|
|
return apiClient.get('/api/admin/activities/recent');
|
|
},
|
|
|
|
/**
|
|
* 통계 데이터 조회
|
|
* @returns {Promise} - 통계 데이터
|
|
*/
|
|
getStatistics() {
|
|
return apiClient.get('/api/admin/statistics');
|
|
},
|
|
|
|
/**
|
|
* 클럽 기능 관리
|
|
* @param {Number} clubId - 클럽 ID
|
|
* @param {Object} features - 클럽 기능 정보
|
|
* @returns {Promise} - 클럽 기능 정보
|
|
*/
|
|
manageClubFeatures: async (clubId, features) => {
|
|
try {
|
|
const response = await apiClient.put(`/api/admin/clubs/${clubId}/features`, { features });
|
|
return response.data;
|
|
} catch (error) {
|
|
console.error('클럽 기능 관리 중 오류:', error);
|
|
throw error;
|
|
}
|
|
}
|
|
};
|
|
|
|
export default adminService;
|