@dalmore/api-contracts 0.0.0-dev.582cb9c → 0.0.0-dev.5e42638

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/README.md +23 -19
  2. package/common/types/account-contact.types.ts +2 -1
  3. package/common/types/account-manager.types.ts +3 -7
  4. package/common/types/account-setting.types.ts +65 -0
  5. package/common/types/account.types.ts +1 -0
  6. package/common/types/auth.types.ts +7 -18
  7. package/common/types/bonus-tier.types.ts +33 -0
  8. package/common/types/cart.types.ts +4 -1
  9. package/common/types/common.types.ts +38 -6
  10. package/common/types/comply-advantage-api.types.ts +3 -3
  11. package/common/types/contact-us.types.ts +6 -2
  12. package/common/types/covered-person.types.ts +2 -1
  13. package/common/types/dashboard.types.ts +2 -9
  14. package/common/types/disbursements.types.ts +97 -3
  15. package/common/types/escrow-account.types.ts +3 -3
  16. package/common/types/individuals.types.ts +5 -17
  17. package/common/types/investor-account.types.ts +2 -1
  18. package/common/types/invite.types.ts +27 -1
  19. package/common/types/issuer-offering.types.ts +11 -17
  20. package/common/types/legal-entity.types.ts +3 -2
  21. package/common/types/mail-template.types.ts +34 -0
  22. package/common/types/note.types.ts +1 -1
  23. package/common/types/notification.types.ts +525 -29
  24. package/common/types/offering.types.ts +2 -9
  25. package/common/types/site-settings.types.ts +2 -1
  26. package/common/types/site.types.ts +2 -9
  27. package/common/types/{trade-line-item.type.ts → trade-line-item.types.ts} +2 -9
  28. package/common/types/trade.types.ts +48 -2
  29. package/common/types/transaction.types.ts +12 -1
  30. package/common/types/trusted-contact.types.ts +7 -7
  31. package/common/types/user.types.ts +17 -33
  32. package/common/types/webhook.types.ts +142 -0
  33. package/contracts/clients/cart/index.ts +21 -1
  34. package/contracts/clients/index.ts +2 -0
  35. package/contracts/clients/trade-line-items/index.ts +1 -1
  36. package/contracts/clients/trades/index.ts +1 -1
  37. package/contracts/{investors → clients}/transactions/index.ts +3 -3
  38. package/index.ts +10 -0
  39. package/package.json +23 -32
  40. package/contracts/compliance/account-contacts/index.ts +0 -82
  41. package/contracts/compliance/account-managers/index.ts +0 -142
  42. package/contracts/compliance/accounts/index.ts +0 -187
  43. package/contracts/compliance/activities/index.ts +0 -55
  44. package/contracts/compliance/aic/index.ts +0 -60
  45. package/contracts/compliance/api-keys/index.ts +0 -91
  46. package/contracts/compliance/assets/index.ts +0 -122
  47. package/contracts/compliance/auth/index.ts +0 -134
  48. package/contracts/compliance/batch-jobs/index.ts +0 -62
  49. package/contracts/compliance/bonus-tiers/index.ts +0 -55
  50. package/contracts/compliance/checklist/index.ts +0 -87
  51. package/contracts/compliance/checklist-items/index.ts +0 -86
  52. package/contracts/compliance/covered-persons/index.ts +0 -97
  53. package/contracts/compliance/dashboard/index.ts +0 -111
  54. package/contracts/compliance/data-records/index.ts +0 -116
  55. package/contracts/compliance/data-rooms/index.ts +0 -113
  56. package/contracts/compliance/default-theme-configs/index.ts +0 -95
  57. package/contracts/compliance/disbursement/index.ts +0 -165
  58. package/contracts/compliance/disbursement-approval-users/index.ts +0 -84
  59. package/contracts/compliance/disbursement-transactions/index.ts +0 -37
  60. package/contracts/compliance/domain-filters/index.ts +0 -117
  61. package/contracts/compliance/email-themes/index.ts +0 -284
  62. package/contracts/compliance/escrow-accounts/index.ts +0 -85
  63. package/contracts/compliance/exchange-api-keys/index.ts +0 -129
  64. package/contracts/compliance/exchange-imports/index.ts +0 -137
  65. package/contracts/compliance/files/index.ts +0 -267
  66. package/contracts/compliance/files-public/index.ts +0 -188
  67. package/contracts/compliance/health/index.ts +0 -26
  68. package/contracts/compliance/index.ts +0 -147
  69. package/contracts/compliance/individuals/index.ts +0 -57
  70. package/contracts/compliance/investor-accounts/index.ts +0 -141
  71. package/contracts/compliance/invites/index.ts +0 -137
  72. package/contracts/compliance/issuer-bank-accounts/index.ts +0 -81
  73. package/contracts/compliance/issuer-payment-methods/index.ts +0 -81
  74. package/contracts/compliance/issuers/index.ts +0 -97
  75. package/contracts/compliance/job-items/index.ts +0 -58
  76. package/contracts/compliance/jobs/index.ts +0 -59
  77. package/contracts/compliance/kyb/index.ts +0 -54
  78. package/contracts/compliance/kyc/index.ts +0 -77
  79. package/contracts/compliance/legal-entities/index.ts +0 -57
  80. package/contracts/compliance/login-histories/index.ts +0 -37
  81. package/contracts/compliance/notes/index.ts +0 -69
  82. package/contracts/compliance/notion-databases/index.ts +0 -107
  83. package/contracts/compliance/notion-pages/index.ts +0 -105
  84. package/contracts/compliance/offering-reports/index.ts +0 -149
  85. package/contracts/compliance/offerings/index.ts +0 -233
  86. package/contracts/compliance/pages/index.ts +0 -178
  87. package/contracts/compliance/payment-methods/index.ts +0 -57
  88. package/contracts/compliance/rejection-reasons/index.ts +0 -32
  89. package/contracts/compliance/review/index.ts +0 -169
  90. package/contracts/compliance/roles/index.ts +0 -34
  91. package/contracts/compliance/secondary-customers/index.ts +0 -77
  92. package/contracts/compliance/secondary-orders/index.ts +0 -60
  93. package/contracts/compliance/secondary-trades/index.ts +0 -100
  94. package/contracts/compliance/secure-requests/index.ts +0 -54
  95. package/contracts/compliance/signer/index.ts +0 -369
  96. package/contracts/compliance/site-links/index.ts +0 -128
  97. package/contracts/compliance/site-settings/index.ts +0 -669
  98. package/contracts/compliance/sites/index.ts +0 -56
  99. package/contracts/compliance/state-machine/index.ts +0 -94
  100. package/contracts/compliance/tasks/index.ts +0 -91
  101. package/contracts/compliance/third-parties/index.ts +0 -52
  102. package/contracts/compliance/trade-line-items/index.ts +0 -59
  103. package/contracts/compliance/trades/index.ts +0 -230
  104. package/contracts/compliance/transactions/index.ts +0 -161
  105. package/contracts/compliance/user-manuals/index.ts +0 -271
  106. package/contracts/compliance/user-settings/index.ts +0 -189
  107. package/contracts/compliance/users/index.ts +0 -200
  108. package/contracts/compliance/webhooks/index.ts +0 -41
  109. package/contracts/compliance-apikey/accounts/index.ts +0 -58
  110. package/contracts/compliance-apikey/index.ts +0 -14
  111. package/contracts/index.ts +0 -6
  112. package/contracts/investors/account-contacts/index.ts +0 -58
  113. package/contracts/investors/aic/index.ts +0 -59
  114. package/contracts/investors/assets/index.ts +0 -61
  115. package/contracts/investors/auth/index.ts +0 -116
  116. package/contracts/investors/bonus-tiers/index.ts +0 -37
  117. package/contracts/investors/cart/index.ts +0 -75
  118. package/contracts/investors/contact-us/index.ts +0 -48
  119. package/contracts/investors/data-records/index.ts +0 -113
  120. package/contracts/investors/data-rooms/index.ts +0 -96
  121. package/contracts/investors/files/index.ts +0 -167
  122. package/contracts/investors/files-public/index.ts +0 -185
  123. package/contracts/investors/index.ts +0 -72
  124. package/contracts/investors/individuals/index.ts +0 -121
  125. package/contracts/investors/investor-accounts/index.ts +0 -110
  126. package/contracts/investors/issuer-payment-methods/index.ts +0 -36
  127. package/contracts/investors/issuers/index.ts +0 -30
  128. package/contracts/investors/legal-entities/index.ts +0 -93
  129. package/contracts/investors/notes/index.ts +0 -69
  130. package/contracts/investors/offerings/index.ts +0 -93
  131. package/contracts/investors/pages/index.ts +0 -88
  132. package/contracts/investors/payment-methods/index.ts +0 -149
  133. package/contracts/investors/portfolios/index.ts +0 -53
  134. package/contracts/investors/sites/index.ts +0 -96
  135. package/contracts/investors/tasks/index.ts +0 -111
  136. package/contracts/investors/trade-line-items/index.ts +0 -75
  137. package/contracts/investors/trades/index.ts +0 -114
  138. package/contracts/investors/trusted-contacts/index.ts +0 -93
  139. package/contracts/investors/user-manuals/index.ts +0 -62
  140. package/contracts/investors/user-settings/index.ts +0 -170
  141. package/contracts/investors/users/index.ts +0 -45
  142. package/contracts/investors/webhooks/index.ts +0 -30
  143. package/contracts/issuers/account-contacts/index.ts +0 -76
  144. package/contracts/issuers/account-integrations/index.ts +0 -97
  145. package/contracts/issuers/accounts/index.ts +0 -97
  146. package/contracts/issuers/activities/index.ts +0 -54
  147. package/contracts/issuers/aic/index.ts +0 -39
  148. package/contracts/issuers/api-key-logs/index.ts +0 -53
  149. package/contracts/issuers/api-keys/index.ts +0 -93
  150. package/contracts/issuers/assets/index.ts +0 -122
  151. package/contracts/issuers/auth/index.ts +0 -152
  152. package/contracts/issuers/bonus-tiers/index.ts +0 -55
  153. package/contracts/issuers/contact-us/index.ts +0 -48
  154. package/contracts/issuers/covered-persons/index.ts +0 -136
  155. package/contracts/issuers/dashboard/index.ts +0 -72
  156. package/contracts/issuers/data-records/index.ts +0 -257
  157. package/contracts/issuers/data-rooms/index.ts +0 -134
  158. package/contracts/issuers/disbursement-approval-users/index.ts +0 -82
  159. package/contracts/issuers/disbursement-transactions/index.ts +0 -53
  160. package/contracts/issuers/disbursements/index.ts +0 -171
  161. package/contracts/issuers/email-themes/index.ts +0 -242
  162. package/contracts/issuers/escrow-accounts/index.ts +0 -81
  163. package/contracts/issuers/exchange-api-keys/index.ts +0 -144
  164. package/contracts/issuers/files/index.ts +0 -166
  165. package/contracts/issuers/files-public/index.ts +0 -166
  166. package/contracts/issuers/health/index.ts +0 -24
  167. package/contracts/issuers/index.ts +0 -112
  168. package/contracts/issuers/investor-accounts/index.ts +0 -148
  169. package/contracts/issuers/invites/index.ts +0 -129
  170. package/contracts/issuers/issuer/index.ts +0 -94
  171. package/contracts/issuers/issuer-bank-accounts/index.ts +0 -81
  172. package/contracts/issuers/issuer-payment-methods/index.ts +0 -136
  173. package/contracts/issuers/kyc/index.ts +0 -38
  174. package/contracts/issuers/login-histories/index.ts +0 -51
  175. package/contracts/issuers/notes/index.ts +0 -69
  176. package/contracts/issuers/offerings/index.ts +0 -206
  177. package/contracts/issuers/pages/index.ts +0 -138
  178. package/contracts/issuers/payment-methods/index.ts +0 -61
  179. package/contracts/issuers/portfolios/index.ts +0 -36
  180. package/contracts/issuers/rejection-reasons/index.ts +0 -32
  181. package/contracts/issuers/review/index.ts +0 -63
  182. package/contracts/issuers/secondary-customers/index.ts +0 -55
  183. package/contracts/issuers/secondary-orders/index.ts +0 -57
  184. package/contracts/issuers/secondary-trades/index.ts +0 -57
  185. package/contracts/issuers/secure-requests/index.ts +0 -34
  186. package/contracts/issuers/site-links/index.ts +0 -116
  187. package/contracts/issuers/site-settings/index.ts +0 -585
  188. package/contracts/issuers/sites/index.ts +0 -32
  189. package/contracts/issuers/tasks/index.ts +0 -111
  190. package/contracts/issuers/trades/index.ts +0 -132
  191. package/contracts/issuers/transactions/index.ts +0 -158
  192. package/contracts/issuers/user-manuals/index.ts +0 -62
  193. package/contracts/issuers/user-settings/index.ts +0 -170
  194. package/contracts/issuers/users/index.ts +0 -126
  195. package/contracts/secondaries/accounts/index.ts +0 -58
  196. package/contracts/secondaries/index.ts +0 -23
  197. package/contracts/secondaries/secondary-customers/index.ts +0 -55
  198. package/contracts/secondaries/secondary-issuers/index.ts +0 -94
  199. package/contracts/secondaries/secondary-orders/index.ts +0 -56
  200. package/contracts/secondaries/secondary-securities/index.ts +0 -95
  201. package/contracts/secondaries/secondary-trades/index.ts +0 -56
@@ -1,369 +0,0 @@
1
- import { ContractAnyType, initContract } from '@ts-rest/core';
2
- import {
3
- BadRequestError,
4
- ForbiddenError,
5
- InternalError,
6
- NotFoundError,
7
- UnauthorizedError,
8
- } from '../../../common/types';
9
- import {
10
- SignerMessageResponseZod,
11
- SignerTemplatesPaginatedZod,
12
- TemplatePathParams,
13
- ValidatedTemplateResponse,
14
- ValidatedTemplatesResponse,
15
- SignerBrandSchema,
16
- BrandPathParams,
17
- CreateSignerBrandZod,
18
- UpdateSignerBrandZod,
19
- SignerBrandsPaginatedZod,
20
- SignerSenderIdentitySchema,
21
- CreateSignerSenderIdentityZod,
22
- UpdateSignerSenderIdentityZod,
23
- SignerSenderIdentitiesPaginatedZod,
24
- SignerTemplateSchema,
25
- SenderIdentityPathParams,
26
- SignerPaginationQuery,
27
- UpdateSignerTemplateZod,
28
- } from '../../../common/types/signer.types';
29
- import { authHeader, generateApiDescription } from '../../../common/helpers';
30
- import z from 'zod';
31
-
32
- const c = initContract();
33
-
34
- export const signerContract = c.router(
35
- {
36
- validateTemplate: {
37
- summary: 'validate signer template by id',
38
- method: 'POST',
39
- path: '/templates/:templateId/check',
40
- pathParams: TemplatePathParams,
41
- metadata: {
42
- auth: true,
43
- },
44
- body: {} as ContractAnyType,
45
- responses: {
46
- 200: ValidatedTemplateResponse,
47
- 400: BadRequestError,
48
- 401: UnauthorizedError,
49
- 403: ForbiddenError,
50
- 404: NotFoundError,
51
- 500: InternalError,
52
- },
53
- },
54
- validateTemplates: {
55
- summary: 'validate all signer templates',
56
- method: 'POST',
57
- path: '/templates/check-all',
58
- metadata: {
59
- auth: true,
60
- },
61
- body: {} as ContractAnyType,
62
- responses: {
63
- 200: ValidatedTemplatesResponse,
64
- 400: BadRequestError,
65
- 401: UnauthorizedError,
66
- 403: ForbiddenError,
67
- 404: NotFoundError,
68
- 500: InternalError,
69
- },
70
- },
71
- getPaginatedSignerTemplates: {
72
- summary: 'Get paginated signer templates',
73
- method: 'GET',
74
- path: '/templates',
75
- metadata: {
76
- auth: true,
77
- },
78
- query: SignerPaginationQuery,
79
- responses: {
80
- 200: SignerTemplatesPaginatedZod,
81
- 401: UnauthorizedError,
82
- 403: ForbiddenError,
83
- 404: NotFoundError,
84
- 500: InternalError,
85
- },
86
- },
87
- getSignerTemplate: {
88
- summary: 'Get signer template',
89
- method: 'GET',
90
- path: '/templates/:id',
91
- pathParams: TemplatePathParams,
92
- metadata: {
93
- auth: true,
94
- },
95
- responses: {
96
- 200: SignerTemplateSchema,
97
- 401: UnauthorizedError,
98
- 403: ForbiddenError,
99
- 404: NotFoundError,
100
- 500: InternalError,
101
- },
102
- },
103
- updateSignerTemplate: {
104
- summary: 'Update signer template',
105
- method: 'PATCH',
106
- path: '/templates/:id',
107
- pathParams: TemplatePathParams,
108
- metadata: {
109
- auth: true,
110
- },
111
- body: UpdateSignerTemplateZod,
112
- responses: {
113
- 200: SignerTemplateSchema,
114
- 401: UnauthorizedError,
115
- 403: ForbiddenError,
116
- 404: NotFoundError,
117
- 500: InternalError,
118
- },
119
- },
120
- syncSignerTemplates: {
121
- summary: 'Sync signer templates',
122
- method: 'POST',
123
- path: '/templates/sync',
124
- metadata: {
125
- auth: true,
126
- },
127
- body: z.object({}),
128
- responses: {
129
- 200: SignerMessageResponseZod,
130
- 401: UnauthorizedError,
131
- 403: ForbiddenError,
132
- 404: NotFoundError,
133
- 500: InternalError,
134
- },
135
- },
136
- createSignerBrand: {
137
- summary: 'Create signer brand',
138
- description: generateApiDescription(
139
- 'Create a new signer brand with the provided data.',
140
- 'POST',
141
- '/brands',
142
- {
143
- headers: authHeader,
144
- formData: {
145
- brandName: 'My Brand Name',
146
- emailDisplayName: 'Brand Display Name',
147
- backgroundColor: '#FFFFFF',
148
- buttonColor: '#007BFF',
149
- buttonTextColor: '#FFFFFF',
150
- accountId: 'account_01j5tkg6k2fygr0x06fegt27aj',
151
- brandLogo: '@/path/to/logo.png',
152
- },
153
- },
154
- ),
155
- method: 'POST',
156
- path: '/brands',
157
- metadata: {
158
- auth: true,
159
- },
160
- body: CreateSignerBrandZod,
161
- contentType: 'multipart/form-data',
162
- responses: {
163
- 200: SignerBrandSchema,
164
- 401: UnauthorizedError,
165
- 403: ForbiddenError,
166
- 404: NotFoundError,
167
- 500: InternalError,
168
- },
169
- },
170
- updateSignerBrand: {
171
- summary: 'Updated signer brand',
172
- description: generateApiDescription(
173
- 'Update an existing signer brand with the provided data.',
174
- 'PUT',
175
- '/brands/:id',
176
- {
177
- headers: authHeader,
178
- formData: {
179
- brandName: 'Updated Brand Name',
180
- emailDisplayName: 'Updated Display Name',
181
- backgroundColor: '#FFFFFF',
182
- buttonColor: '#007BFF',
183
- buttonTextColor: '#FFFFFF',
184
- brandLogo: '@/path/to/updated-logo.png',
185
- },
186
- },
187
- ),
188
- method: 'PUT',
189
- path: '/brands/:id',
190
- pathParams: BrandPathParams,
191
- metadata: {
192
- auth: true,
193
- },
194
- body: UpdateSignerBrandZod,
195
- contentType: 'multipart/form-data',
196
- responses: {
197
- 200: SignerBrandSchema,
198
- 401: UnauthorizedError,
199
- 403: ForbiddenError,
200
- 404: NotFoundError,
201
- 500: InternalError,
202
- },
203
- },
204
- deleteSignerBrand: {
205
- summary: 'Delete signer brand',
206
- method: 'GET',
207
- path: '/brands/:id',
208
- pathParams: BrandPathParams,
209
- metadata: {
210
- auth: true,
211
- },
212
- responses: {
213
- 200: SignerMessageResponseZod,
214
- 401: UnauthorizedError,
215
- 403: ForbiddenError,
216
- 404: NotFoundError,
217
- 500: InternalError,
218
- },
219
- },
220
- getPaginatedSignerBrands: {
221
- summary: 'Get paginated signer brands',
222
- method: 'GET',
223
- path: '/brands',
224
- metadata: {
225
- auth: true,
226
- },
227
- query: SignerPaginationQuery,
228
- responses: {
229
- 200: SignerBrandsPaginatedZod,
230
- 401: UnauthorizedError,
231
- 403: ForbiddenError,
232
- 404: NotFoundError,
233
- 500: InternalError,
234
- },
235
- },
236
- getSignerBrand: {
237
- summary: 'Get signer brand',
238
- method: 'GET',
239
- path: '/brands/:id',
240
- pathParams: BrandPathParams,
241
- metadata: {
242
- auth: true,
243
- },
244
- responses: {
245
- 200: SignerBrandSchema,
246
- 401: UnauthorizedError,
247
- 403: ForbiddenError,
248
- 404: NotFoundError,
249
- 500: InternalError,
250
- },
251
- },
252
- syncSignerBrands: {
253
- summary: 'Sync signer brands',
254
- method: 'POST',
255
- path: '/brands/sync',
256
- metadata: {
257
- auth: true,
258
- },
259
- body: z.object({}),
260
- responses: {
261
- 200: SignerMessageResponseZod,
262
- 401: UnauthorizedError,
263
- 403: ForbiddenError,
264
- 404: NotFoundError,
265
- 500: InternalError,
266
- },
267
- },
268
- createSignerSenderIdentity: {
269
- summary: 'Create signer sender identity',
270
- method: 'POST',
271
- path: '/sender-identities',
272
- metadata: {
273
- auth: true,
274
- },
275
- body: CreateSignerSenderIdentityZod,
276
- responses: {
277
- 200: SignerSenderIdentitySchema,
278
- 401: UnauthorizedError,
279
- 403: ForbiddenError,
280
- 404: NotFoundError,
281
- 500: InternalError,
282
- },
283
- },
284
- updateSignerSenderIdentity: {
285
- summary: 'update signer sender identity',
286
- method: 'PUT',
287
- path: '/sender-identities/:id',
288
- pathParams: SenderIdentityPathParams,
289
- metadata: {
290
- auth: true,
291
- },
292
- body: UpdateSignerSenderIdentityZod,
293
- responses: {
294
- 200: SignerSenderIdentitySchema,
295
- 401: UnauthorizedError,
296
- 403: ForbiddenError,
297
- 404: NotFoundError,
298
- 500: InternalError,
299
- },
300
- },
301
- deleteSignerSenderIdentity: {
302
- summary: 'Delete signer sender identity',
303
- method: 'DELETE',
304
- path: '/sender-identities/:id',
305
- pathParams: SenderIdentityPathParams,
306
- metadata: {
307
- auth: true,
308
- },
309
- responses: {
310
- 200: SignerMessageResponseZod,
311
- 401: UnauthorizedError,
312
- 403: ForbiddenError,
313
- 404: NotFoundError,
314
- 500: InternalError,
315
- },
316
- },
317
- getPaginatedSignerSenderIdentities: {
318
- summary: 'Get paginated signer sender identites',
319
- method: 'GET',
320
- path: '/sender-identities',
321
- metadata: {
322
- auth: true,
323
- },
324
- query: SignerPaginationQuery,
325
- responses: {
326
- 200: SignerSenderIdentitiesPaginatedZod,
327
- 401: UnauthorizedError,
328
- 403: ForbiddenError,
329
- 404: NotFoundError,
330
- 500: InternalError,
331
- },
332
- },
333
- getSignerSenderidentity: {
334
- summary: 'Get signer sender identity',
335
- method: 'GET',
336
- path: '/sender-identities/:id',
337
- pathParams: SenderIdentityPathParams,
338
- metadata: {
339
- auth: true,
340
- },
341
- responses: {
342
- 200: SignerSenderIdentitySchema,
343
- 401: UnauthorizedError,
344
- 403: ForbiddenError,
345
- 404: NotFoundError,
346
- 500: InternalError,
347
- },
348
- },
349
- syncSignerSenderIdentities: {
350
- summary: 'Sync signer sender identities',
351
- method: 'POST',
352
- path: '/sender-identities',
353
- metadata: {
354
- auth: true,
355
- },
356
- body: z.object({}),
357
- responses: {
358
- 200: SignerMessageResponseZod,
359
- 401: UnauthorizedError,
360
- 403: ForbiddenError,
361
- 404: NotFoundError,
362
- 500: InternalError,
363
- },
364
- },
365
- },
366
- {
367
- pathPrefix: 'signers',
368
- },
369
- );
@@ -1,128 +0,0 @@
1
- import { initContract } from '@ts-rest/core';
2
- import {
3
- PaginationOptionsZod,
4
- UnauthorizedError,
5
- SiteLinkFiltersZod,
6
- IPaginatedSiteLink,
7
- PostSiteLinkZod,
8
- ISiteLink,
9
- BadRequestError,
10
- NotFoundError,
11
- ForbiddenError,
12
- InternalError,
13
- siteLinkIdSchema,
14
- SiteLinkDeleteResponse,
15
- SiteLinksIncludeQuery,
16
- accountIdSchema,
17
- } from '../../../common/types';
18
- import { z } from 'zod';
19
- const c = initContract();
20
-
21
- export const siteLinksContract = c.router(
22
- {
23
- getSiteLinks: {
24
- summary: 'Get site links',
25
- method: 'GET',
26
- path: '/account/:accountId',
27
- metadata: {
28
- auth: true,
29
- },
30
- pathParams: z.object({
31
- accountId: accountIdSchema,
32
- }),
33
- query: PaginationOptionsZod.merge(SiteLinksIncludeQuery).merge(
34
- SiteLinkFiltersZod,
35
- ),
36
- responses: {
37
- 200: IPaginatedSiteLink,
38
- 400: BadRequestError,
39
- 401: UnauthorizedError,
40
- },
41
- },
42
- getSiteLink: {
43
- summary: 'Get a site link',
44
- method: 'GET',
45
- path: '/:id/account/:accountId',
46
- metadata: {
47
- auth: true,
48
- },
49
- pathParams: z.object({
50
- id: siteLinkIdSchema,
51
- accountId: accountIdSchema,
52
- }),
53
- query: z.object({}).merge(SiteLinksIncludeQuery),
54
- responses: {
55
- 200: ISiteLink,
56
- 400: BadRequestError,
57
- 401: UnauthorizedError,
58
- 403: ForbiddenError,
59
- 404: NotFoundError,
60
- 500: InternalError,
61
- },
62
- },
63
- postSiteLink: {
64
- summary: '[ADMIN] Create a site link',
65
- method: 'POST',
66
- path: '/account/:accountId',
67
- metadata: {
68
- auth: true,
69
- },
70
- pathParams: z.object({
71
- accountId: accountIdSchema,
72
- }),
73
- body: PostSiteLinkZod,
74
- responses: {
75
- 201: ISiteLink,
76
- 400: BadRequestError,
77
- 401: UnauthorizedError,
78
- 403: ForbiddenError,
79
- 404: NotFoundError,
80
- 500: InternalError,
81
- },
82
- },
83
- patchSiteLink: {
84
- summary: '[ADMIN] Update a site link',
85
- method: 'PATCH',
86
- path: '/:id/account/:accountId',
87
- metadata: {
88
- auth: true,
89
- },
90
- pathParams: z.object({
91
- id: siteLinkIdSchema,
92
- accountId: accountIdSchema,
93
- }),
94
- body: PostSiteLinkZod,
95
- responses: {
96
- 201: ISiteLink,
97
- 400: BadRequestError,
98
- 401: UnauthorizedError,
99
- 403: ForbiddenError,
100
- 404: NotFoundError,
101
- 500: InternalError,
102
- },
103
- },
104
- deleteSiteLink: {
105
- summary: '[ADMIN] Delete a site link',
106
- method: 'DELETE',
107
- path: '/:id/account/:accountId',
108
- metadata: {
109
- auth: true,
110
- },
111
- pathParams: z.object({
112
- id: siteLinkIdSchema,
113
- accountId: accountIdSchema,
114
- }),
115
- responses: {
116
- 204: SiteLinkDeleteResponse,
117
- 400: BadRequestError,
118
- 401: UnauthorizedError,
119
- 403: ForbiddenError,
120
- 404: NotFoundError,
121
- 500: InternalError,
122
- },
123
- },
124
- },
125
- {
126
- pathPrefix: 'site-links',
127
- },
128
- );