-
Notifications
You must be signed in to change notification settings - Fork 508
Expand file tree
/
Copy pathuseGitlabIntegration.ts
More file actions
118 lines (115 loc) · 3.49 KB
/
useGitlabIntegration.ts
File metadata and controls
118 lines (115 loc) · 3.49 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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
import { Res } from 'common/types/responses'
import { Req } from 'common/types/requests'
import { service } from 'common/service'
export const gitlabIntegrationService = service
.enhanceEndpoints({ addTagTypes: ['GitlabIntegration'] })
.injectEndpoints({
endpoints: (builder) => ({
createGitlabIntegration: builder.mutation<
Res['gitlabIntegrations'],
Req['createGitlabIntegration']
>({
invalidatesTags: [{ id: 'LIST', type: 'GitlabIntegration' }],
query: (query: Req['createGitlabIntegration']) => ({
body: query.body,
method: 'POST',
url: `projects/${query.project_id}/integrations/gitlab/`,
}),
}),
deleteGitlabIntegration: builder.mutation<
Res['gitlabIntegrations'],
Req['deleteGitlabIntegration']
>({
invalidatesTags: [{ id: 'LIST', type: 'GitlabIntegration' }],
query: (query: Req['deleteGitlabIntegration']) => ({
method: 'DELETE',
url: `projects/${query.project_id}/integrations/gitlab/${query.gitlab_integration_id}/`,
}),
}),
getGitlabIntegration: builder.query<
Res['gitlabIntegrations'],
Req['getGitlabIntegration']
>({
providesTags: [{ id: 'LIST', type: 'GitlabIntegration' }],
query: (query: Req['getGitlabIntegration']) => ({
url: `projects/${query.project_id}/integrations/gitlab/`,
}),
}),
updateGitlabIntegration: builder.mutation<
Res['gitlabIntegrations'],
Req['updateGitlabIntegration']
>({
invalidatesTags: [{ id: 'LIST', type: 'GitlabIntegration' }],
query: (query: Req['updateGitlabIntegration']) => ({
body: query.body,
method: 'PATCH',
url: `projects/${query.project_id}/integrations/gitlab/${query.gitlab_integration_id}/`,
}),
}),
// END OF ENDPOINTS
}),
})
export async function createGitlabIntegration(
store: any,
data: Req['createGitlabIntegration'],
options?: Parameters<
typeof gitlabIntegrationService.endpoints.createGitlabIntegration.initiate
>[1],
) {
return store.dispatch(
gitlabIntegrationService.endpoints.createGitlabIntegration.initiate(
data,
options,
),
)
}
export async function deleteGitlabIntegration(
store: any,
data: Req['deleteGitlabIntegration'],
options?: Parameters<
typeof gitlabIntegrationService.endpoints.deleteGitlabIntegration.initiate
>[1],
) {
return store.dispatch(
gitlabIntegrationService.endpoints.deleteGitlabIntegration.initiate(
data,
options,
),
)
}
export async function getGitlabIntegration(
store: any,
data: Req['getGitlabIntegration'],
options?: Parameters<
typeof gitlabIntegrationService.endpoints.getGitlabIntegration.initiate
>[1],
) {
return store.dispatch(
gitlabIntegrationService.endpoints.getGitlabIntegration.initiate(
data,
options,
),
)
}
export async function updateGitlabIntegration(
store: any,
data: Req['updateGitlabIntegration'],
options?: Parameters<
typeof gitlabIntegrationService.endpoints.updateGitlabIntegration.initiate
>[1],
) {
return store.dispatch(
gitlabIntegrationService.endpoints.updateGitlabIntegration.initiate(
data,
options,
),
)
}
// END OF FUNCTION_EXPORTS
export const {
useCreateGitlabIntegrationMutation,
useDeleteGitlabIntegrationMutation,
useGetGitlabIntegrationQuery,
useUpdateGitlabIntegrationMutation,
// END OF EXPORTS
} = gitlabIntegrationService