30 lines
882 B
TypeScript
30 lines
882 B
TypeScript
import { api } from './client';
|
|
import type { Project, CreateProjectDto, UpdateProjectDto } from '@/types/project';
|
|
import type { KanbanBoard } from '@/types/kanban';
|
|
|
|
export const projectsApi = {
|
|
getAll: async (page = 1, pageSize = 20): Promise<Project[]> => {
|
|
return api.get(`/projects?page=${page}&pageSize=${pageSize}`);
|
|
},
|
|
|
|
getById: async (id: string): Promise<Project> => {
|
|
return api.get(`/projects/${id}`);
|
|
},
|
|
|
|
create: async (data: CreateProjectDto): Promise<Project> => {
|
|
return api.post('/projects', data);
|
|
},
|
|
|
|
update: async (id: string, data: UpdateProjectDto): Promise<Project> => {
|
|
return api.put(`/projects/${id}`, data);
|
|
},
|
|
|
|
delete: async (id: string): Promise<void> => {
|
|
return api.delete(`/projects/${id}`);
|
|
},
|
|
|
|
getKanban: async (id: string): Promise<KanbanBoard> => {
|
|
return api.get(`/projects/${id}/kanban`);
|
|
},
|
|
};
|