-
Notifications
You must be signed in to change notification settings - Fork 97
/
plain-client.ts
309 lines (306 loc) · 12.3 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
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
import { GetContentTypeParams, GetSpaceEnvironmentParams, MakeRequest } from '../common-types'
import { omitAndDeleteField } from '../methods/content-type'
import { PlainClientAPI } from './common-types'
import { DefaultParams, wrap } from './wrappers/wrap'
export type { DefaultParams } from './wrappers/wrap'
export const createPlainClient = (
makeRequest: MakeRequest,
defaults: DefaultParams | undefined
): PlainClientAPI => {
const wrapParams = { makeRequest, defaults }
return {
raw: {
getDefaultParams: () => defaults,
get: (url, config) =>
makeRequest({
entityType: 'Http',
action: 'get',
params: { url, config },
}),
post: (url, payload, config) =>
makeRequest({
entityType: 'Http',
action: 'post',
params: { url, config },
payload,
}),
put: (url, payload, config) =>
makeRequest({
entityType: 'Http',
action: 'put',
params: { url, config },
payload,
}),
delete: (url, config) =>
makeRequest({
entityType: 'Http',
action: 'delete',
params: { url, config },
}),
http: (url, config) =>
makeRequest({
entityType: 'Http',
action: 'request',
params: { url, config },
}),
},
appBundle: {
get: wrap(wrapParams, 'AppBundle', 'get'),
getMany: wrap(wrapParams, 'AppBundle', 'getMany'),
delete: wrap(wrapParams, 'AppBundle', 'delete'),
create: wrap(wrapParams, 'AppBundle', 'create'),
},
editorInterface: {
get: wrap(wrapParams, 'EditorInterface', 'get'),
getMany: wrap(wrapParams, 'EditorInterface', 'getMany'),
update: wrap(wrapParams, 'EditorInterface', 'update'),
},
space: {
get: wrap(wrapParams, 'Space', 'get'),
getMany: wrap(wrapParams, 'Space', 'getMany'),
update: wrap(wrapParams, 'Space', 'update'),
delete: wrap(wrapParams, 'Space', 'delete'),
create: wrap(wrapParams, 'Space', 'create'),
},
environment: {
get: wrap(wrapParams, 'Environment', 'get'),
getMany: wrap(wrapParams, 'Environment', 'getMany'),
create: wrap(wrapParams, 'Environment', 'create'),
createWithId: wrap(wrapParams, 'Environment', 'createWithId'),
update: wrap(wrapParams, 'Environment', 'update'),
delete: wrap(wrapParams, 'Environment', 'delete'),
},
environmentAlias: {
get: wrap(wrapParams, 'EnvironmentAlias', 'get'),
getMany: wrap(wrapParams, 'EnvironmentAlias', 'getMany'),
createWithId: wrap(wrapParams, 'EnvironmentAlias', 'createWithId'),
update: wrap(wrapParams, 'EnvironmentAlias', 'update'),
delete: wrap(wrapParams, 'EnvironmentAlias', 'delete'),
},
contentType: {
get: wrap(wrapParams, 'ContentType', 'get'),
getMany: wrap(wrapParams, 'ContentType', 'getMany'),
update: wrap(wrapParams, 'ContentType', 'update'),
delete: wrap(wrapParams, 'ContentType', 'delete'),
publish: wrap(wrapParams, 'ContentType', 'publish'),
unpublish: wrap(wrapParams, 'ContentType', 'unpublish'),
omitAndDeleteField: (params, contentType, fieldId) =>
omitAndDeleteField(
makeRequest,
{ ...({ ...defaults, ...params } as GetContentTypeParams), fieldId },
contentType
),
},
user: {
getManyForSpace: wrap(wrapParams, 'User', 'getManyForSpace'),
getForSpace: wrap(wrapParams, 'User', 'getForSpace'),
getCurrent: wrap(wrapParams, 'User', 'getCurrent'),
getForOrganization: wrap(wrapParams, 'User', 'getForOrganization'),
getManyForOrganization: wrap(wrapParams, 'User', 'getManyForOrganization'),
},
entry: {
getMany: wrap(wrapParams, 'Entry', 'getMany'),
get: wrap(wrapParams, 'Entry', 'get'),
update: wrap(wrapParams, 'Entry', 'update'),
delete: wrap(wrapParams, 'Entry', 'delete'),
publish: wrap(wrapParams, 'Entry', 'publish'),
unpublish: wrap(wrapParams, 'Entry', 'unpublish'),
archive: wrap(wrapParams, 'Entry', 'archive'),
unarchive: wrap(wrapParams, 'Entry', 'unarchive'),
create: wrap(wrapParams, 'Entry', 'create'),
createWithId: wrap(wrapParams, 'Entry', 'createWithId'),
},
asset: {
getMany: wrap(wrapParams, 'Asset', 'getMany'),
get: wrap(wrapParams, 'Asset', 'get'),
update: wrap(wrapParams, 'Asset', 'update'),
delete: wrap(wrapParams, 'Asset', 'delete'),
publish: wrap(wrapParams, 'Asset', 'publish'),
unpublish: wrap(wrapParams, 'Asset', 'unpublish'),
archive: wrap(wrapParams, 'Asset', 'archive'),
unarchive: wrap(wrapParams, 'Asset', 'unarchive'),
create: wrap(wrapParams, 'Asset', 'create'),
createWithId: wrap(wrapParams, 'Asset', 'createWithId'),
createFromFiles: wrap(wrapParams, 'Asset', 'createFromFiles'),
processForAllLocales: (params, asset, options) =>
makeRequest({
entityType: 'Asset',
action: 'processForAllLocales',
params: {
...({ ...defaults, ...params } as GetSpaceEnvironmentParams),
options,
asset,
},
}),
processForLocale: (params, asset, locale, options) =>
makeRequest({
entityType: 'Asset',
action: 'processForLocale',
params: {
...({ ...defaults, ...params } as GetSpaceEnvironmentParams),
locale,
asset,
options,
},
}),
},
appUpload: {
get: wrap(wrapParams, 'AppUpload', 'get'),
delete: wrap(wrapParams, 'AppUpload', 'delete'),
create: wrap(wrapParams, 'AppUpload', 'create'),
},
assetKey: {
create: wrap(wrapParams, 'AssetKey', 'create'),
},
upload: {
get: wrap(wrapParams, 'Upload', 'get'),
create: wrap(wrapParams, 'Upload', 'create'),
delete: wrap(wrapParams, 'Upload', 'delete'),
},
locale: {
get: wrap(wrapParams, 'Locale', 'get'),
getMany: wrap(wrapParams, 'Locale', 'getMany'),
delete: wrap(wrapParams, 'Locale', 'delete'),
update: wrap(wrapParams, 'Locale', 'update'),
create: wrap(wrapParams, 'Locale', 'create'),
},
personalAccessToken: {
get: wrap(wrapParams, 'PersonalAccessToken', 'get'),
getMany: wrap(wrapParams, 'PersonalAccessToken', 'getMany'),
create: (data, headers) =>
makeRequest({
entityType: 'PersonalAccessToken',
action: 'create',
params: {},
headers,
payload: data,
}),
revoke: wrap(wrapParams, 'PersonalAccessToken', 'revoke'),
},
usage: {
getManyForSpace: wrap(wrapParams, 'Usage', 'getManyForSpace'),
getManyForOrganization: wrap(wrapParams, 'Usage', 'getManyForOrganization'),
},
role: {
get: wrap(wrapParams, 'Role', 'get'),
getMany: wrap(wrapParams, 'Role', 'getMany'),
create: wrap(wrapParams, 'Role', 'create'),
createWithId: wrap(wrapParams, 'Role', 'createWithId'),
update: wrap(wrapParams, 'Role', 'update'),
delete: wrap(wrapParams, 'Role', 'delete'),
},
scheduledActions: {
getMany: wrap(wrapParams, 'ScheduledAction', 'getMany'),
create: wrap(wrapParams, 'ScheduledAction', 'create'),
delete: wrap(wrapParams, 'ScheduledAction', 'delete'),
},
previewApiKey: {
get: wrap(wrapParams, 'PreviewApiKey', 'get'),
getMany: wrap(wrapParams, 'PreviewApiKey', 'getMany'),
},
apiKey: {
get: wrap(wrapParams, 'ApiKey', 'get'),
getMany: wrap(wrapParams, 'ApiKey', 'getMany'),
create: wrap(wrapParams, 'ApiKey', 'create'),
createWithId: wrap(wrapParams, 'ApiKey', 'createWithId'),
update: wrap(wrapParams, 'ApiKey', 'update'),
delete: wrap(wrapParams, 'ApiKey', 'delete'),
},
appDefinition: {
get: wrap(wrapParams, 'AppDefinition', 'get'),
getMany: wrap(wrapParams, 'AppDefinition', 'getMany'),
create: wrap(wrapParams, 'AppDefinition', 'create'),
update: wrap(wrapParams, 'AppDefinition', 'update'),
delete: wrap(wrapParams, 'AppDefinition', 'delete'),
},
appInstallation: {
get: wrap(wrapParams, 'AppInstallation', 'get'),
getMany: wrap(wrapParams, 'AppInstallation', 'getMany'),
upsert: wrap(wrapParams, 'AppInstallation', 'upsert'),
delete: wrap(wrapParams, 'AppInstallation', 'delete'),
},
extension: {
get: wrap(wrapParams, 'Extension', 'get'),
getMany: wrap(wrapParams, 'Extension', 'getMany'),
create: wrap(wrapParams, 'Extension', 'create'),
createWithId: wrap(wrapParams, 'Extension', 'createWithId'),
update: wrap(wrapParams, 'Extension', 'update'),
delete: wrap(wrapParams, 'Extension', 'delete'),
},
webhook: {
get: wrap(wrapParams, 'Webhook', 'get'),
getMany: wrap(wrapParams, 'Webhook', 'getMany'),
getHealthStatus: wrap(wrapParams, 'Webhook', 'getHealthStatus'),
getCallDetails: wrap(wrapParams, 'Webhook', 'getCallDetails'),
getManyCallDetails: wrap(wrapParams, 'Webhook', 'getManyCallDetails'),
create: wrap(wrapParams, 'Webhook', 'create'),
update: wrap(wrapParams, 'Webhook', 'update'),
delete: wrap(wrapParams, 'Webhook', 'delete'),
},
snapshot: {
getManyForEntry: wrap(wrapParams, 'Snapshot', 'getManyForEntry'),
getForEntry: wrap(wrapParams, 'Snapshot', 'getForEntry'),
getManyForContentType: wrap(wrapParams, 'Snapshot', 'getManyForContentType'),
getForContentType: wrap(wrapParams, 'Snapshot', 'getForContentType'),
},
tag: {
get: wrap(wrapParams, 'Tag', 'get'),
getMany: wrap(wrapParams, 'Tag', 'getMany'),
createWithId: wrap(wrapParams, 'Tag', 'createWithId'),
update: wrap(wrapParams, 'Tag', 'update'),
delete: wrap(wrapParams, 'Tag', 'delete'),
},
organization: {
getAll: wrap(wrapParams, 'Organization', 'getMany'),
get: wrap(wrapParams, 'Organization', 'get'),
},
organizationInvitation: {
get: wrap(wrapParams, 'OrganizationInvitation', 'get'),
create: wrap(wrapParams, 'OrganizationInvitation', 'create'),
},
organizationMembership: {
get: wrap(wrapParams, 'OrganizationMembership', 'get'),
getMany: wrap(wrapParams, 'OrganizationMembership', 'getMany'),
update: wrap(wrapParams, 'OrganizationMembership', 'update'),
delete: wrap(wrapParams, 'OrganizationMembership', 'delete'),
},
spaceMember: {
get: wrap(wrapParams, 'SpaceMember', 'get'),
getMany: wrap(wrapParams, 'SpaceMember', 'getMany'),
},
spaceMembership: {
get: wrap(wrapParams, 'SpaceMembership', 'get'),
getMany: wrap(wrapParams, 'SpaceMembership', 'getMany'),
getForOrganization: wrap(wrapParams, 'SpaceMembership', 'getForOrganization'),
getManyForOrganization: wrap(wrapParams, 'SpaceMembership', 'getManyForOrganization'),
create: wrap(wrapParams, 'SpaceMembership', 'create'),
createWithId: wrap(wrapParams, 'SpaceMembership', 'createWithId'),
update: wrap(wrapParams, 'SpaceMembership', 'update'),
delete: wrap(wrapParams, 'SpaceMembership', 'delete'),
},
team: {
get: wrap(wrapParams, 'Team', 'get'),
getMany: wrap(wrapParams, 'Team', 'getMany'),
create: wrap(wrapParams, 'Team', 'create'),
update: wrap(wrapParams, 'Team', 'update'),
delete: wrap(wrapParams, 'Team', 'delete'),
},
teamMembership: {
get: wrap(wrapParams, 'TeamMembership', 'get'),
getManyForOrganization: wrap(wrapParams, 'TeamMembership', 'getManyForOrganization'),
getManyForTeam: wrap(wrapParams, 'TeamMembership', 'getManyForTeam'),
create: wrap(wrapParams, 'TeamMembership', 'create'),
update: wrap(wrapParams, 'TeamMembership', 'update'),
delete: wrap(wrapParams, 'TeamMembership', 'delete'),
},
teamSpaceMembership: {
get: wrap(wrapParams, 'TeamSpaceMembership', 'get'),
getMany: wrap(wrapParams, 'TeamSpaceMembership', 'getMany'),
getForOrganization: wrap(wrapParams, 'TeamSpaceMembership', 'getForOrganization'),
getManyForOrganization: wrap(wrapParams, 'TeamSpaceMembership', 'getManyForOrganization'),
create: wrap(wrapParams, 'TeamSpaceMembership', 'create'),
update: wrap(wrapParams, 'TeamSpaceMembership', 'update'),
delete: wrap(wrapParams, 'TeamSpaceMembership', 'delete'),
},
}
}