|
|
|
|
import { request } from "@/components/service/index";
|
|
|
|
|
import {
|
|
|
|
|
ApiProject,
|
|
|
|
|
ProjectAuthority,
|
|
|
|
|
ProjectSearch,
|
|
|
|
|
} from "@/components/models/project/Project";
|
|
|
|
|
|
|
|
|
|
export const ProjectService = {
|
|
|
|
|
// ID로 프로젝트 조회
|
|
|
|
|
fetchProjectById: (id: number) => {
|
|
|
|
|
return request.get(`/api/projects/${id}`, {});
|
|
|
|
|
},
|
|
|
|
|
// 프로젝트 수정
|
|
|
|
|
update: (id: number, payload: ApiProject) => {
|
|
|
|
|
return request.put(`/api/projects/${id}`, payload);
|
|
|
|
|
},
|
|
|
|
|
// 프로젝트 삭제
|
|
|
|
|
delete: (id: number) => {
|
|
|
|
|
return request.delete(`/api/projects/${id}`, {});
|
|
|
|
|
},
|
|
|
|
|
// 전체 프로젝트 목록 조회
|
|
|
|
|
search: () => {
|
|
|
|
|
return request.get("/api/projects", {});
|
|
|
|
|
},
|
|
|
|
|
// 프로젝트 생성
|
|
|
|
|
add: (payload: ApiProject) => {
|
|
|
|
|
return request.post("/api/projects", payload);
|
|
|
|
|
},
|
|
|
|
|
// 검색 및 페이지네이션 프로젝트 목록 조회
|
|
|
|
|
searchProjects: (params: ProjectSearch) => {
|
|
|
|
|
return request.get("/api/projects/search", params);
|
|
|
|
|
},
|
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
// 프로젝트 권한
|
|
|
|
|
projectAuthority: (projectId: number, payload: ProjectAuthority) => {
|
|
|
|
|
return request.post(`/api/projects/${projectId}/users`, payload);
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
deleteProjectAuthority: (projectId: number, userId: number) => {
|
|
|
|
|
return request.delete(
|
|
|
|
|
`/api/projects/${projectId}/users/${userId}/permissions`,
|
|
|
|
|
{},
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
userProjectAuthority: (id: number) => {
|
|
|
|
|
return request.get(`/api/projects/users/${id}/projects`, {});
|
|
|
|
|
},
|
|
|
|
|
};
|