diff --git a/frontend/src/api/project.ts b/frontend/src/api/project.ts index a87d19c..5b68e67 100755 --- a/frontend/src/api/project.ts +++ b/frontend/src/api/project.ts @@ -1,64 +1,60 @@ import type { Project, Task } from './types' -import { - mockListProjects, - mockGetProject, - mockCreateProject, - mockDeleteProject, - mockUpdateProject, - mockGetStyle, - mockSaveStyle, - mockGetTasks, -} from './mock' +import { get, post, put, del } from './client' -const USE_MOCK = true +export async function listProjects( + page?: number, + pageSize?: number +): Promise { + const params = new URLSearchParams() + if (page !== undefined) params.set('page', String(page)) + if (pageSize !== undefined) params.set('pageSize', String(pageSize)) -export async function listProjects(): Promise { - if (USE_MOCK) return mockListProjects() - throw new Error('Not implemented') + const url = `/api/v1/projects${params.toString() ? '?' + params : ''}` + const resp = await get<{ + total: number + projects: Project[] + }>(url) + return resp.projects } export async function getProject(projectId: string): Promise { - if (USE_MOCK) return mockGetProject(projectId) - throw new Error('Not implemented') + return get(`/api/v1/projects/${projectId}`) } export async function createProject( name: string, style?: Record ): Promise { - if (USE_MOCK) return mockCreateProject(name, style) - throw new Error('Not implemented') + return post('/api/v1/projects', { name, style }) } export async function deleteProject(projectId: string): Promise { - if (USE_MOCK) return mockDeleteProject(projectId) - throw new Error('Not implemented') + return del(`/api/v1/projects/${projectId}`) } export async function updateProject( projectId: string, - data: { name?: string } + data: { name: string } ): Promise { - if (USE_MOCK) return mockUpdateProject(projectId, data) - throw new Error('Not implemented') + return put(`/api/v1/projects/${projectId}`, data) } export async function getStyle( projectId: string ): Promise> { - if (USE_MOCK) return mockGetStyle(projectId) - throw new Error('Not implemented') + const resp = await get<{ kvPairs: Record }>( + `/api/v1/projects/${projectId}/style` + ) + return resp.kvPairs } export async function saveStyle( projectId: string, kvPairs: Record ): Promise { - if (USE_MOCK) return mockSaveStyle(projectId, kvPairs) - throw new Error('Not implemented') + return put(`/api/v1/projects/${projectId}/style`, { kvPairs }) } export async function getTasks(projectId: string): Promise { - if (USE_MOCK) return mockGetTasks(projectId) - throw new Error('Not implemented') + return get(`/api/v1/projects/${projectId}/tasks`) }