You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
autoflow-web-console/src/components/service/project/projectService.ts

50 lines
1.5 KiB

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`, {});
},
};