/
plain-client.ts
251 lines (246 loc) · 11.9 KB
/
plain-client.ts
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
import { createCMAHttpClient, ClientParams, defaultHostParameters } from '../create-cma-http-client'
import * as endpoints from './endpoints'
import { wrap, wrapHttp, DefaultParams } from './wrappers/wrap'
export type { DefaultParams } from './wrappers/wrap'
export type PlainClientAPI = ReturnType<typeof createPlainClient>
// eslint-disable-next-line @typescript-eslint/no-explicit-any
type RestParamsType<F> = F extends (p1: any, ...rest: infer REST) => any ? REST : never
export const createPlainClient = (params: ClientParams, defaults?: DefaultParams) => {
const http = createCMAHttpClient(params, true)
const httpUpload = createCMAHttpClient({
...params,
host: params.hostUpload || defaultHostParameters.defaultHostnameUpload,
})
const wrapParams = { http, defaults }
return {
raw: {
getDefaultParams: () => defaults,
get: (...args: RestParamsType<typeof endpoints.raw.get>) => endpoints.raw.get(http, ...args),
post: (...args: RestParamsType<typeof endpoints.raw.post>) =>
endpoints.raw.post(http, ...args),
put: (...args: RestParamsType<typeof endpoints.raw.put>) => endpoints.raw.put(http, ...args),
delete: (...args: RestParamsType<typeof endpoints.raw.del>) =>
endpoints.raw.del(http, ...args),
http: (...args: RestParamsType<typeof endpoints.raw.http>) =>
endpoints.raw.http(http, ...args),
},
editorInterface: {
get: wrap(wrapParams, endpoints.editorInterface.get),
getMany: wrap(wrapParams, endpoints.editorInterface.getMany),
update: wrap(wrapParams, endpoints.editorInterface.update),
},
space: {
get: wrap(wrapParams, endpoints.space.get),
getMany: wrap(wrapParams, endpoints.space.getMany),
update: wrap(wrapParams, endpoints.space.update),
delete: wrap(wrapParams, endpoints.space.del),
create: wrap(wrapParams, endpoints.space.create),
},
environment: {
get: wrap(wrapParams, endpoints.environment.get),
getMany: wrap(wrapParams, endpoints.environment.getMany),
create: wrap(wrapParams, endpoints.environment.create),
createWithId: wrap(wrapParams, endpoints.environment.createWithId),
update: wrap(wrapParams, endpoints.environment.update),
delete: wrap(wrapParams, endpoints.environment.del),
},
environmentAlias: {
get: wrap(wrapParams, endpoints.environmentAlias.get),
getMany: wrap(wrapParams, endpoints.environmentAlias.getMany),
createWithId: wrap(wrapParams, endpoints.environmentAlias.createWithId),
update: wrap(wrapParams, endpoints.environmentAlias.update),
delete: wrap(wrapParams, endpoints.environmentAlias.del),
},
contentType: {
get: wrap(wrapParams, endpoints.contentType.get),
getMany: wrap(wrapParams, endpoints.contentType.getMany),
update: wrap(wrapParams, endpoints.contentType.update),
delete: wrap(wrapParams, endpoints.contentType.del),
publish: wrap(wrapParams, endpoints.contentType.publish),
unpublish: wrap(wrapParams, endpoints.contentType.unpublish),
omitAndDeleteField: wrap(wrapParams, endpoints.contentType.omitAndDeleteField),
},
user: {
getManyForSpace: wrap(wrapParams, endpoints.user.getManyForSpace),
getForSpace: wrap(wrapParams, endpoints.user.getForSpace),
getCurrent: wrapHttp(http, endpoints.user.getCurrent),
getForOrganization: wrap(wrapParams, endpoints.user.getForOrganization),
getManyForOrganization: wrap(wrapParams, endpoints.user.getManyForOrganization),
},
entry: {
getMany: wrap(wrapParams, endpoints.entry.getMany),
get: wrap(wrapParams, endpoints.entry.get),
update: wrap(wrapParams, endpoints.entry.update),
delete: wrap(wrapParams, endpoints.entry.del),
publish: wrap(wrapParams, endpoints.entry.publish),
unpublish: wrap(wrapParams, endpoints.entry.unpublish),
archive: wrap(wrapParams, endpoints.entry.archive),
unarchive: wrap(wrapParams, endpoints.entry.unarchive),
create: wrap(wrapParams, endpoints.entry.create),
createWithId: wrap(wrapParams, endpoints.entry.createWithId),
},
asset: {
getMany: wrap(wrapParams, endpoints.asset.getMany),
get: wrap(wrapParams, endpoints.asset.get),
update: wrap(wrapParams, endpoints.asset.update),
delete: wrap(wrapParams, endpoints.asset.del),
publish: wrap(wrapParams, endpoints.asset.publish),
unpublish: wrap(wrapParams, endpoints.asset.unpublish),
archive: wrap(wrapParams, endpoints.asset.archive),
unarchive: wrap(wrapParams, endpoints.asset.unarchive),
create: wrap(wrapParams, endpoints.asset.create),
createWithId: wrap(wrapParams, endpoints.asset.createWithId),
createFromFiles: wrap(wrapParams, endpoints.asset.createFromFiles(httpUpload)),
processForAllLocales: wrap(wrapParams, endpoints.asset.processForAllLocales),
processForLocale: wrap(wrapParams, endpoints.asset.processForLocale),
},
upload: {
get: wrap({ http: httpUpload, defaults }, endpoints.upload.get),
create: wrap({ http: httpUpload, defaults }, endpoints.upload.create),
delete: wrap({ http: httpUpload, defaults }, endpoints.upload.del),
},
locale: {
get: wrap(wrapParams, endpoints.locale.get),
getMany: wrap(wrapParams, endpoints.locale.getMany),
delete: wrap(wrapParams, endpoints.locale.del),
update: wrap(wrapParams, endpoints.locale.update),
create: wrap(wrapParams, endpoints.locale.create),
},
personalAccessToken: {
get: wrap(wrapParams, endpoints.personalAccessToken.get),
getMany: wrap(wrapParams, endpoints.personalAccessToken.getMany),
create: (...args: RestParamsType<typeof endpoints.personalAccessToken.create>) => {
return endpoints.personalAccessToken.create(http, ...args)
},
revoke: wrap(wrapParams, endpoints.personalAccessToken.revoke),
},
usage: {
getManyForSpace: wrap(wrapParams, endpoints.usage.getManyForSpace),
getManyForOrganization: wrap(wrapParams, endpoints.usage.getManyForOrganization),
},
role: {
get: wrap(wrapParams, endpoints.role.get),
getMany: wrap(wrapParams, endpoints.role.getMany),
create: wrap(wrapParams, endpoints.role.create),
createWithId: wrap(wrapParams, endpoints.role.createWithId),
update: wrap(wrapParams, endpoints.role.update),
delete: wrap(wrapParams, endpoints.role.del),
},
scheduledActions: {
getMany: wrap(wrapParams, endpoints.scheduledAction.getMany),
create: wrap(wrapParams, endpoints.scheduledAction.create),
delete: wrap(wrapParams, endpoints.scheduledAction.del),
},
previewApiKey: {
get: wrap(wrapParams, endpoints.previewApiKey.get),
getMany: wrap(wrapParams, endpoints.previewApiKey.getMany),
},
apiKey: {
get: wrap(wrapParams, endpoints.apiKey.get),
getMany: wrap(wrapParams, endpoints.apiKey.getMany),
create: wrap(wrapParams, endpoints.apiKey.create),
createWithId: wrap(wrapParams, endpoints.apiKey.createWithId),
update: wrap(wrapParams, endpoints.apiKey.update),
delete: wrap(wrapParams, endpoints.apiKey.del),
},
appDefinition: {
get: wrap(wrapParams, endpoints.appDefinition.get),
getMany: wrap(wrapParams, endpoints.appDefinition.getMany),
create: wrap(wrapParams, endpoints.appDefinition.create),
update: wrap(wrapParams, endpoints.appDefinition.update),
delete: wrap(wrapParams, endpoints.appDefinition.del),
},
appInstallation: {
get: wrap(wrapParams, endpoints.appInstallation.get),
getMany: wrap(wrapParams, endpoints.appInstallation.getMany),
upsert: wrap(wrapParams, endpoints.appInstallation.upsert),
delete: wrap(wrapParams, endpoints.appInstallation.del),
},
extension: {
get: wrap(wrapParams, endpoints.uiExtension.get),
getMany: wrap(wrapParams, endpoints.uiExtension.getMany),
create: wrap(wrapParams, endpoints.uiExtension.create),
createWithId: wrap(wrapParams, endpoints.uiExtension.createWithId),
update: wrap(wrapParams, endpoints.uiExtension.update),
delete: wrap(wrapParams, endpoints.uiExtension.del),
},
webhook: {
get: wrap(wrapParams, endpoints.webhook.get),
getMany: wrap(wrapParams, endpoints.webhook.getMany),
getHealthStatus: wrap(wrapParams, endpoints.webhook.getHealthStatus),
getCallDetails: wrap(wrapParams, endpoints.webhook.getCallDetails),
getManyCallDetails: wrap(wrapParams, endpoints.webhook.getManyCallDetails),
create: wrap(wrapParams, endpoints.webhook.create),
update: wrap(wrapParams, endpoints.webhook.update),
delete: wrap(wrapParams, endpoints.webhook.del),
},
snapshot: {
getManyForEntry: wrap(wrapParams, endpoints.snapshot.getManyForEntry),
getForEntry: wrap(wrapParams, endpoints.snapshot.getForEntry),
getManyForContentType: wrap(wrapParams, endpoints.snapshot.getManyForContentType),
getForContentType: wrap(wrapParams, endpoints.snapshot.getForContentType),
},
tag: {
get: wrap(wrapParams, endpoints.tag.get),
getMany: wrap(wrapParams, endpoints.tag.getMany),
createWithId: wrap(wrapParams, endpoints.tag.createWithId),
update: wrap(wrapParams, endpoints.tag.update),
delete: wrap(wrapParams, endpoints.tag.del),
},
organization: {
getAll: wrapHttp(http, endpoints.organization.getAll),
get: wrap(wrapParams, endpoints.organization.get),
},
organizationInvitation: {
get: wrap(wrapParams, endpoints.organizationInvitation.get),
create: wrap(wrapParams, endpoints.organizationInvitation.create),
},
organizationMembership: {
get: wrap(wrapParams, endpoints.organizationMembership.get),
getMany: wrap(wrapParams, endpoints.organizationMembership.getMany),
update: wrap(wrapParams, endpoints.organizationMembership.update),
delete: wrap(wrapParams, endpoints.organizationMembership.del),
},
spaceMember: {
get: wrap(wrapParams, endpoints.spaceMember.get),
getMany: wrap(wrapParams, endpoints.spaceMember.getMany),
},
spaceMembership: {
get: wrap(wrapParams, endpoints.spaceMembership.get),
getMany: wrap(wrapParams, endpoints.spaceMembership.getMany),
getForOrganization: wrap(wrapParams, endpoints.spaceMembership.getForOrganization),
getManyForOrganization: wrap(wrapParams, endpoints.spaceMembership.getManyForOrganization),
create: wrap(wrapParams, endpoints.spaceMembership.create),
createWithId: wrap(wrapParams, endpoints.spaceMembership.createWithId),
update: wrap(wrapParams, endpoints.spaceMembership.update),
delete: wrap(wrapParams, endpoints.spaceMembership.del),
},
team: {
get: wrap(wrapParams, endpoints.team.get),
getMany: wrap(wrapParams, endpoints.team.getMany),
create: wrap(wrapParams, endpoints.team.create),
update: wrap(wrapParams, endpoints.team.update),
delete: wrap(wrapParams, endpoints.team.del),
},
teamMembership: {
get: wrap(wrapParams, endpoints.teamMembership.get),
getManyForOrganization: wrap(wrapParams, endpoints.teamMembership.getManyForOrganization),
getManyForTeam: wrap(wrapParams, endpoints.teamMembership.getManyForTeam),
create: wrap(wrapParams, endpoints.teamMembership.create),
update: wrap(wrapParams, endpoints.teamMembership.update),
delete: wrap(wrapParams, endpoints.teamMembership.del),
},
teamSpaceMembership: {
get: wrap(wrapParams, endpoints.teamSpaceMembership.get),
getMany: wrap(wrapParams, endpoints.teamSpaceMembership.getMany),
getForOrganization: wrap(wrapParams, endpoints.teamSpaceMembership.getForOrganization),
getManyForOrganization: wrap(
wrapParams,
endpoints.teamSpaceMembership.getManyForOrganization
),
create: wrap(wrapParams, endpoints.teamSpaceMembership.create),
update: wrap(wrapParams, endpoints.teamSpaceMembership.update),
delete: wrap(wrapParams, endpoints.teamSpaceMembership.del),
},
}
}