forked from riccardoperra/codeimage
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathproject.ts
More file actions
81 lines (73 loc) · 2.12 KB
/
project.ts
File metadata and controls
81 lines (73 loc) · 2.12 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
import type * as ApiTypes from '@codeimage/api/api-types';
import {makeFetch} from './client';
const env = import.meta.env;
const BASE_URL = env.VITE_API_BASE_URL ?? '';
export async function deleteProject(
request: ApiTypes.DeleteProjectApi['request'],
): Promise<ApiTypes.DeleteProjectApi['response']> {
return makeFetch(`${BASE_URL}/api/v1/project/:id`, {
method: 'DELETE',
params: {
id: request.params?.id,
},
}).then(res => res.json());
}
export async function updateSnippetName(
data: ApiTypes.UpdateProjectNameApi['request'],
): Promise<ApiTypes.UpdateProjectNameApi['response']> {
return makeFetch(`${BASE_URL}/api/v1/project/:id/name`, {
method: 'PUT',
params: {
id: data.params?.id,
},
body: data.body,
}).then(res => res.json());
}
export async function getWorkspaceContent(): Promise<
ApiTypes.GetProjectByIdApi['response'][]
> {
return makeFetch(`${BASE_URL}/api/v1/project`, {
method: 'GET',
}).then(res => res.json());
}
export async function updateSnippet(
data: ApiTypes.UpdateProjectApi['request'],
): Promise<ApiTypes.UpdateProjectApi['response']> {
return makeFetch(`${BASE_URL}/api/v1/project/:id`, {
method: 'PUT',
params: {
id: data.params?.id,
},
body: data.body,
}).then(res => res.json());
}
export async function createSnippet(
request: ApiTypes.CreateProjectApi['request'],
): Promise<ApiTypes.CreateProjectApi['response']> {
return makeFetch(`${BASE_URL}/api/v1/project`, {
method: 'POST',
body: request.body,
}).then(res => res.json());
}
export async function loadSnippet(
projectId: string,
): Promise<ApiTypes.GetProjectByIdApi['response']> {
return makeFetch(`${BASE_URL}/api/v1/project/:id`, {
method: 'GET',
params: {
id: projectId,
},
}).then(res => res.json());
}
export async function cloneSnippet(
projectId: string,
request: ApiTypes.CloneProjectApi['request'],
): Promise<ApiTypes.CloneProjectApi['response']> {
return makeFetch(`${BASE_URL}/api/v1/project/:id/clone`, {
method: 'POST',
params: {
id: projectId,
},
body: request.body,
}).then(res => res.json());
}