-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathprojectAPI.js
More file actions
88 lines (80 loc) · 2.38 KB
/
projectAPI.js
File metadata and controls
88 lines (80 loc) · 2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import api from './client';
/** 작성자: 백승준 */
export const getProjects = async (params = {}) => {
try {
const response = await api.get('/projects', { params });
return response.data;
} catch (error) {
console.error('프로젝트 목록 조회 실패:', error);
throw error;
}
};
export const getProjectDetail = async (projectId) => {
try {
const response = await api.get(`/projects/${projectId}`);
return response.data;
} catch (error) {
console.error(`프로젝트 상세 조회 실패 (ID: ${projectId}):`, error);
throw error;
}
};
export const createProject = async (projectData) => {
try {
const response = await api.post('/projects', projectData);
return response.data;
} catch (error) {
console.error('프로젝트 생성 실패:', error);
throw error;
}
};
export const updateProject = async (projectData) => {
try {
const { id, ...data } = projectData;
const response = await api.put(`/projects/${id}`, data);
return response.data;
} catch (error) {
console.error('프로젝트 수정 실패:', error);
throw error;
}
};
export const analyzeRequirements = async (formData) => {
try {
const response = await api.post('/requirements/upload', formData, {
headers: {
'Content-Type': 'multipart/form-data',
},
});
return response.data;
} catch (error) {
console.error('요구사항 분석 실패:', error);
throw error;
}
};
export const deleteProject = async (projectId) => {
try {
const response = await api.delete(`/projects/${projectId}`);
return response.data;
} catch (error) {
console.error(`프로젝트 삭제 실패 (ID: ${projectId}):`, error);
throw error;
}
};
// --- 팀원 추가/삭제 API 수정 ---
export const createProjectMember = async (projectId, memberId) => {
try {
const response = await api.post(`/projects/${projectId}/members`, memberId);
return response.data;
} catch (error) {
console.error(`프로젝트 멤버 생성 실패 (ID: ${projectId}):`, error);
throw error;
}
};
export const deleteProjectMember = async (projectId, memberId) => {
try {
const response = await api.delete(`/projects/${projectId}/members`, { data: { memberId } });
return response.data;
} catch (error) {
console.error(`프로젝트 멤버 삭제 실패 (ID: ${projectId}):`, error);
throw error;
}
};