@dalmore/api-contracts 0.0.0-dev.d8ef117 → 0.0.0-dev.e325dbb

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 (194) 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 +9 -0
  8. package/common/types/common.types.ts +38 -6
  9. package/common/types/contact-us.types.ts +6 -2
  10. package/common/types/covered-person.types.ts +2 -1
  11. package/common/types/dashboard.types.ts +2 -9
  12. package/common/types/escrow-account.types.ts +3 -3
  13. package/common/types/individuals.types.ts +3 -2
  14. package/common/types/investor-account.types.ts +2 -1
  15. package/common/types/invite.types.ts +27 -1
  16. package/common/types/issuer-offering.types.ts +11 -17
  17. package/common/types/legal-entity.types.ts +3 -2
  18. package/common/types/mail-template.types.ts +34 -0
  19. package/common/types/note.types.ts +1 -1
  20. package/common/types/notification.types.ts +515 -29
  21. package/common/types/offering.types.ts +2 -9
  22. package/common/types/site-settings.types.ts +2 -1
  23. package/common/types/site.types.ts +2 -9
  24. package/common/types/{trade-line-item.type.ts → trade-line-item.types.ts} +2 -9
  25. package/common/types/trade.types.ts +48 -2
  26. package/common/types/trusted-contact.types.ts +7 -7
  27. package/common/types/user.types.ts +11 -32
  28. package/contracts/clients/trade-line-items/index.ts +1 -1
  29. package/contracts/clients/trades/index.ts +1 -1
  30. package/index.ts +10 -0
  31. package/package.json +23 -32
  32. package/contracts/compliance/account-contacts/index.ts +0 -82
  33. package/contracts/compliance/account-managers/index.ts +0 -142
  34. package/contracts/compliance/accounts/index.ts +0 -187
  35. package/contracts/compliance/activities/index.ts +0 -55
  36. package/contracts/compliance/aic/index.ts +0 -60
  37. package/contracts/compliance/api-keys/index.ts +0 -91
  38. package/contracts/compliance/assets/index.ts +0 -122
  39. package/contracts/compliance/auth/index.ts +0 -134
  40. package/contracts/compliance/batch-jobs/index.ts +0 -62
  41. package/contracts/compliance/bonus-tiers/index.ts +0 -74
  42. package/contracts/compliance/checklist/index.ts +0 -87
  43. package/contracts/compliance/checklist-items/index.ts +0 -86
  44. package/contracts/compliance/covered-persons/index.ts +0 -97
  45. package/contracts/compliance/dashboard/index.ts +0 -111
  46. package/contracts/compliance/data-records/index.ts +0 -116
  47. package/contracts/compliance/data-rooms/index.ts +0 -113
  48. package/contracts/compliance/default-theme-configs/index.ts +0 -95
  49. package/contracts/compliance/disbursement/index.ts +0 -165
  50. package/contracts/compliance/disbursement-approval-users/index.ts +0 -84
  51. package/contracts/compliance/disbursement-transactions/index.ts +0 -37
  52. package/contracts/compliance/domain-filters/index.ts +0 -117
  53. package/contracts/compliance/email-themes/index.ts +0 -284
  54. package/contracts/compliance/escrow-accounts/index.ts +0 -85
  55. package/contracts/compliance/exchange-api-keys/index.ts +0 -129
  56. package/contracts/compliance/exchange-imports/index.ts +0 -137
  57. package/contracts/compliance/files/index.ts +0 -267
  58. package/contracts/compliance/files-public/index.ts +0 -188
  59. package/contracts/compliance/health/index.ts +0 -26
  60. package/contracts/compliance/index.ts +0 -147
  61. package/contracts/compliance/individuals/index.ts +0 -57
  62. package/contracts/compliance/investor-accounts/index.ts +0 -141
  63. package/contracts/compliance/invites/index.ts +0 -137
  64. package/contracts/compliance/issuer-bank-accounts/index.ts +0 -81
  65. package/contracts/compliance/issuer-payment-methods/index.ts +0 -81
  66. package/contracts/compliance/issuers/index.ts +0 -97
  67. package/contracts/compliance/job-items/index.ts +0 -58
  68. package/contracts/compliance/jobs/index.ts +0 -59
  69. package/contracts/compliance/kyb/index.ts +0 -54
  70. package/contracts/compliance/kyc/index.ts +0 -77
  71. package/contracts/compliance/legal-entities/index.ts +0 -57
  72. package/contracts/compliance/login-histories/index.ts +0 -37
  73. package/contracts/compliance/notes/index.ts +0 -69
  74. package/contracts/compliance/notion-databases/index.ts +0 -107
  75. package/contracts/compliance/notion-pages/index.ts +0 -105
  76. package/contracts/compliance/offering-reports/index.ts +0 -149
  77. package/contracts/compliance/offerings/index.ts +0 -233
  78. package/contracts/compliance/pages/index.ts +0 -178
  79. package/contracts/compliance/payment-methods/index.ts +0 -57
  80. package/contracts/compliance/rejection-reasons/index.ts +0 -32
  81. package/contracts/compliance/review/index.ts +0 -169
  82. package/contracts/compliance/roles/index.ts +0 -34
  83. package/contracts/compliance/secondary-customers/index.ts +0 -77
  84. package/contracts/compliance/secondary-orders/index.ts +0 -60
  85. package/contracts/compliance/secondary-trades/index.ts +0 -100
  86. package/contracts/compliance/secure-requests/index.ts +0 -54
  87. package/contracts/compliance/signer/index.ts +0 -369
  88. package/contracts/compliance/site-links/index.ts +0 -128
  89. package/contracts/compliance/site-settings/index.ts +0 -669
  90. package/contracts/compliance/sites/index.ts +0 -56
  91. package/contracts/compliance/state-machine/index.ts +0 -94
  92. package/contracts/compliance/tasks/index.ts +0 -91
  93. package/contracts/compliance/third-parties/index.ts +0 -52
  94. package/contracts/compliance/trade-line-items/index.ts +0 -59
  95. package/contracts/compliance/trades/index.ts +0 -230
  96. package/contracts/compliance/transactions/index.ts +0 -161
  97. package/contracts/compliance/user-manuals/index.ts +0 -271
  98. package/contracts/compliance/user-settings/index.ts +0 -189
  99. package/contracts/compliance/users/index.ts +0 -221
  100. package/contracts/compliance/webhooks/index.ts +0 -41
  101. package/contracts/compliance-apikey/accounts/index.ts +0 -58
  102. package/contracts/compliance-apikey/index.ts +0 -14
  103. package/contracts/index.ts +0 -6
  104. package/contracts/investors/account-contacts/index.ts +0 -58
  105. package/contracts/investors/aic/index.ts +0 -59
  106. package/contracts/investors/assets/index.ts +0 -61
  107. package/contracts/investors/auth/index.ts +0 -116
  108. package/contracts/investors/bonus-tiers/index.ts +0 -55
  109. package/contracts/investors/cart/index.ts +0 -75
  110. package/contracts/investors/contact-us/index.ts +0 -48
  111. package/contracts/investors/data-records/index.ts +0 -113
  112. package/contracts/investors/data-rooms/index.ts +0 -96
  113. package/contracts/investors/files/index.ts +0 -167
  114. package/contracts/investors/files-public/index.ts +0 -185
  115. package/contracts/investors/index.ts +0 -72
  116. package/contracts/investors/individuals/index.ts +0 -121
  117. package/contracts/investors/investor-accounts/index.ts +0 -110
  118. package/contracts/investors/issuer-payment-methods/index.ts +0 -36
  119. package/contracts/investors/issuers/index.ts +0 -30
  120. package/contracts/investors/legal-entities/index.ts +0 -93
  121. package/contracts/investors/notes/index.ts +0 -69
  122. package/contracts/investors/offerings/index.ts +0 -93
  123. package/contracts/investors/pages/index.ts +0 -88
  124. package/contracts/investors/payment-methods/index.ts +0 -149
  125. package/contracts/investors/portfolios/index.ts +0 -53
  126. package/contracts/investors/sites/index.ts +0 -96
  127. package/contracts/investors/tasks/index.ts +0 -111
  128. package/contracts/investors/trade-line-items/index.ts +0 -75
  129. package/contracts/investors/trades/index.ts +0 -114
  130. package/contracts/investors/transactions/index.ts +0 -37
  131. package/contracts/investors/trusted-contacts/index.ts +0 -93
  132. package/contracts/investors/user-manuals/index.ts +0 -62
  133. package/contracts/investors/user-settings/index.ts +0 -170
  134. package/contracts/investors/users/index.ts +0 -45
  135. package/contracts/investors/webhooks/index.ts +0 -30
  136. package/contracts/issuers/account-contacts/index.ts +0 -76
  137. package/contracts/issuers/account-integrations/index.ts +0 -97
  138. package/contracts/issuers/accounts/index.ts +0 -97
  139. package/contracts/issuers/activities/index.ts +0 -54
  140. package/contracts/issuers/aic/index.ts +0 -39
  141. package/contracts/issuers/api-key-logs/index.ts +0 -53
  142. package/contracts/issuers/api-keys/index.ts +0 -93
  143. package/contracts/issuers/assets/index.ts +0 -122
  144. package/contracts/issuers/auth/index.ts +0 -152
  145. package/contracts/issuers/bonus-tiers/index.ts +0 -73
  146. package/contracts/issuers/contact-us/index.ts +0 -48
  147. package/contracts/issuers/covered-persons/index.ts +0 -136
  148. package/contracts/issuers/dashboard/index.ts +0 -72
  149. package/contracts/issuers/data-records/index.ts +0 -257
  150. package/contracts/issuers/data-rooms/index.ts +0 -134
  151. package/contracts/issuers/disbursement-approval-users/index.ts +0 -82
  152. package/contracts/issuers/disbursement-transactions/index.ts +0 -53
  153. package/contracts/issuers/disbursements/index.ts +0 -189
  154. package/contracts/issuers/email-themes/index.ts +0 -242
  155. package/contracts/issuers/escrow-accounts/index.ts +0 -81
  156. package/contracts/issuers/exchange-api-keys/index.ts +0 -144
  157. package/contracts/issuers/files/index.ts +0 -166
  158. package/contracts/issuers/files-public/index.ts +0 -166
  159. package/contracts/issuers/health/index.ts +0 -24
  160. package/contracts/issuers/index.ts +0 -112
  161. package/contracts/issuers/investor-accounts/index.ts +0 -148
  162. package/contracts/issuers/invites/index.ts +0 -129
  163. package/contracts/issuers/issuer/index.ts +0 -94
  164. package/contracts/issuers/issuer-bank-accounts/index.ts +0 -81
  165. package/contracts/issuers/issuer-payment-methods/index.ts +0 -136
  166. package/contracts/issuers/kyc/index.ts +0 -38
  167. package/contracts/issuers/login-histories/index.ts +0 -51
  168. package/contracts/issuers/notes/index.ts +0 -69
  169. package/contracts/issuers/offerings/index.ts +0 -206
  170. package/contracts/issuers/pages/index.ts +0 -138
  171. package/contracts/issuers/payment-methods/index.ts +0 -61
  172. package/contracts/issuers/portfolios/index.ts +0 -36
  173. package/contracts/issuers/rejection-reasons/index.ts +0 -32
  174. package/contracts/issuers/review/index.ts +0 -63
  175. package/contracts/issuers/secondary-customers/index.ts +0 -55
  176. package/contracts/issuers/secondary-orders/index.ts +0 -57
  177. package/contracts/issuers/secondary-trades/index.ts +0 -57
  178. package/contracts/issuers/secure-requests/index.ts +0 -34
  179. package/contracts/issuers/site-links/index.ts +0 -116
  180. package/contracts/issuers/site-settings/index.ts +0 -585
  181. package/contracts/issuers/sites/index.ts +0 -32
  182. package/contracts/issuers/tasks/index.ts +0 -111
  183. package/contracts/issuers/trades/index.ts +0 -132
  184. package/contracts/issuers/transactions/index.ts +0 -158
  185. package/contracts/issuers/user-manuals/index.ts +0 -62
  186. package/contracts/issuers/user-settings/index.ts +0 -170
  187. package/contracts/issuers/users/index.ts +0 -126
  188. package/contracts/secondaries/accounts/index.ts +0 -58
  189. package/contracts/secondaries/index.ts +0 -23
  190. package/contracts/secondaries/secondary-customers/index.ts +0 -55
  191. package/contracts/secondaries/secondary-issuers/index.ts +0 -94
  192. package/contracts/secondaries/secondary-orders/index.ts +0 -56
  193. package/contracts/secondaries/secondary-securities/index.ts +0 -95
  194. package/contracts/secondaries/secondary-trades/index.ts +0 -56
@@ -1,242 +0,0 @@
1
- import { initContract } from '@ts-rest/core';
2
- import { z } from 'zod';
3
- import {
4
- ForbiddenError,
5
- PaginationOptionsZod,
6
- UnauthorizedError,
7
- NotFoundError,
8
- InternalError,
9
- } from '../../../common/types';
10
- import {} from '../../../common/types';
11
- import {
12
- emailThemeIdSchema,
13
- emailThemeSettingIdSchema,
14
- EmailThemesList,
15
- IEmailTheme,
16
- IEmailThemeSetting,
17
- PatchEmailThemeSetting,
18
- IEmailThemeSettings,
19
- PatchEmailThemeSettings,
20
- PostEmailThemeZod,
21
- ExportEmailThemeSettingsZod,
22
- PatchEmailThemeNameZod,
23
- ImportEmailThemeSettingsZod,
24
- PreviewEmailThemeResponse,
25
- SendPreviewEmailResponse,
26
- SendPreviewEmailZod,
27
- PreviewEmailThemeZod,
28
- GenerateTemplatePreviewHtmlZod,
29
- } from '../../../common/types/email-theme.types';
30
-
31
- const c = initContract();
32
-
33
- export const emailThemesContract = c.router(
34
- {
35
- previewEmailTheme: {
36
- summary: 'Preview an email theme',
37
- method: 'GET',
38
- path: '/preview',
39
- metadata: {
40
- auth: true,
41
- },
42
- responses: {
43
- 200: PreviewEmailThemeResponse,
44
- 401: UnauthorizedError,
45
- 403: ForbiddenError,
46
- 404: NotFoundError,
47
- 500: InternalError,
48
- },
49
- },
50
- getEmailThemes: {
51
- summary: 'Get the email themes for the current account',
52
- method: 'GET',
53
- path: '',
54
- metadata: {
55
- auth: true,
56
- },
57
- responses: {
58
- 200: EmailThemesList,
59
- 401: UnauthorizedError,
60
- 403: ForbiddenError,
61
- 404: NotFoundError,
62
- },
63
- },
64
-
65
- getEmailTheme: {
66
- summary: 'Get the email theme for the current account',
67
- method: 'GET',
68
- path: '/:id',
69
- metadata: {
70
- auth: true,
71
- },
72
- query: PaginationOptionsZod,
73
- responses: {
74
- 200: IEmailTheme,
75
- 401: UnauthorizedError,
76
- 403: ForbiddenError,
77
- 404: NotFoundError,
78
- },
79
- },
80
- sendPreviewEmail: {
81
- summary: 'Send a preview email',
82
- method: 'POST',
83
- path: '/send-preview-email',
84
- metadata: {
85
- auth: true,
86
- },
87
- body: SendPreviewEmailZod,
88
- responses: {
89
- 201: SendPreviewEmailResponse,
90
- 401: UnauthorizedError,
91
- 403: ForbiddenError,
92
- 404: NotFoundError,
93
- 500: InternalError,
94
- },
95
- },
96
- sendTemplateEmail: {
97
- summary: 'Send a template email',
98
- method: 'POST',
99
- path: '/send-template-email',
100
- metadata: {
101
- auth: true,
102
- },
103
- body: PreviewEmailThemeZod,
104
- responses: {
105
- 201: SendPreviewEmailResponse,
106
- 401: UnauthorizedError,
107
- 403: ForbiddenError,
108
- 404: NotFoundError,
109
- 500: InternalError,
110
- },
111
- },
112
- generateTemplatePreviewHtml: {
113
- summary: 'Generate HTML for a template email',
114
- method: 'POST',
115
- path: '/generate-template-preview-html',
116
- metadata: {
117
- auth: true,
118
- },
119
- body: GenerateTemplatePreviewHtmlZod,
120
- responses: {
121
- 200: PreviewEmailThemeResponse,
122
- 401: UnauthorizedError,
123
- 403: ForbiddenError,
124
- 404: NotFoundError,
125
- 500: InternalError,
126
- },
127
- },
128
- postEmailTheme: {
129
- summary: 'Post a email theme',
130
- method: 'POST',
131
- path: '',
132
- metadata: {
133
- auth: true,
134
- },
135
- body: PostEmailThemeZod,
136
- responses: {
137
- 201: IEmailTheme,
138
- 401: UnauthorizedError,
139
- 403: ForbiddenError,
140
- 500: InternalError,
141
- },
142
- },
143
-
144
- patchEmailThemeSettings: {
145
- summary: 'Patch email theme settings',
146
- method: 'PATCH',
147
- path: '/:id/email-theme-settings',
148
- metadata: {
149
- auth: true,
150
- },
151
- pathParams: z.object({
152
- id: emailThemeIdSchema,
153
- }),
154
- body: PatchEmailThemeSettings,
155
- responses: {
156
- 201: IEmailThemeSettings,
157
- 401: UnauthorizedError,
158
- 403: ForbiddenError,
159
- 500: InternalError,
160
- },
161
- },
162
- patchEmailThemeSetting: {
163
- summary: 'Patch a email theme setting',
164
- method: 'PATCH',
165
- path: '/:id/email-theme/:emailThemeId',
166
- metadata: {
167
- auth: true,
168
- },
169
- pathParams: z.object({
170
- id: emailThemeSettingIdSchema,
171
- emailThemeId: emailThemeIdSchema,
172
- }),
173
- body: PatchEmailThemeSetting,
174
- responses: {
175
- 201: IEmailThemeSetting,
176
- 401: UnauthorizedError,
177
- 403: ForbiddenError,
178
- 500: InternalError,
179
- },
180
- },
181
- importEmailThemeSettings: {
182
- summary: 'Import email theme settings',
183
- method: 'POST',
184
- path: '/:id/import-theme-settings',
185
- metadata: {
186
- auth: true,
187
- },
188
- pathParams: z.object({
189
- id: emailThemeIdSchema,
190
- }),
191
- body: ImportEmailThemeSettingsZod,
192
- responses: {
193
- 201: IEmailThemeSettings,
194
- 401: UnauthorizedError,
195
- 403: ForbiddenError,
196
- 404: NotFoundError,
197
- 500: InternalError,
198
- },
199
- },
200
-
201
- exportEmailThemeSettings: {
202
- summary: 'Export email theme settings',
203
- method: 'GET',
204
- path: '/:id/export-theme-settings',
205
- metadata: {
206
- auth: true,
207
- },
208
- pathParams: z.object({
209
- id: emailThemeIdSchema,
210
- }),
211
- responses: {
212
- 200: ExportEmailThemeSettingsZod,
213
- 401: UnauthorizedError,
214
- 403: ForbiddenError,
215
- 404: NotFoundError,
216
- 500: InternalError,
217
- },
218
- },
219
- patchEmailThemeName: {
220
- summary: 'Patch the name of a email theme',
221
- method: 'PATCH',
222
- path: '/:id/name',
223
- metadata: {
224
- auth: true,
225
- },
226
- pathParams: z.object({
227
- id: emailThemeIdSchema,
228
- }),
229
- body: PatchEmailThemeNameZod,
230
- responses: {
231
- 201: IEmailTheme,
232
- 401: UnauthorizedError,
233
- 403: ForbiddenError,
234
- 404: NotFoundError,
235
- 500: InternalError,
236
- },
237
- },
238
- },
239
- {
240
- pathPrefix: 'email-themes',
241
- },
242
- );
@@ -1,81 +0,0 @@
1
- import { initContract } from '@ts-rest/core';
2
- import {
3
- ForbiddenError,
4
- InternalError,
5
- NotFoundError,
6
- UnauthorizedError,
7
- PaginationOptionsZod,
8
- BadRequestError,
9
- } from '../../../common/types';
10
- import {
11
- escrowAccountIdSchema,
12
- EscrowAccountsFilter,
13
- EscrowAccountsIncludeQuery,
14
- IEscrowAccount,
15
- IPaginatedEscrowAccount,
16
- PatchEscrowAccount,
17
- PostEscrowAccount,
18
- } from '../../../common/types/escrow-account.types';
19
- import { z } from 'zod';
20
-
21
- const c = initContract();
22
-
23
- export const escrowAccountsContract = c.router(
24
- {
25
- getEscrowAccounts: {
26
- summary: 'Get escrow accounts',
27
- method: 'GET',
28
- path: '',
29
- metadata: {
30
- auth: true,
31
- },
32
- query: PaginationOptionsZod.merge(EscrowAccountsFilter).merge(
33
- EscrowAccountsIncludeQuery,
34
- ),
35
- responses: {
36
- 200: IPaginatedEscrowAccount,
37
- 401: UnauthorizedError,
38
- 403: ForbiddenError,
39
- 404: NotFoundError,
40
- 500: InternalError,
41
- },
42
- },
43
- postEscrowAccount: {
44
- summary: 'Create an escrow account',
45
- method: 'POST',
46
- path: '',
47
- metadata: {
48
- auth: true,
49
- },
50
- body: PostEscrowAccount,
51
- responses: {
52
- 201: IEscrowAccount,
53
- 400: BadRequestError,
54
- 401: UnauthorizedError,
55
- 404: NotFoundError,
56
- 500: InternalError,
57
- },
58
- },
59
- patchEscrowAccount: {
60
- summary: 'Update escrow account',
61
- method: 'PATCH',
62
- path: '/:id',
63
- metadata: {
64
- auth: true,
65
- },
66
- pathParams: z.object({ id: escrowAccountIdSchema }),
67
- body: PatchEscrowAccount,
68
- responses: {
69
- 201: IEscrowAccount,
70
- 400: BadRequestError,
71
- 401: UnauthorizedError,
72
- 403: ForbiddenError,
73
- 404: NotFoundError,
74
- 500: InternalError,
75
- },
76
- },
77
- },
78
- {
79
- pathPrefix: 'escrow-accounts',
80
- },
81
- );
@@ -1,144 +0,0 @@
1
- import { initContract } from '@ts-rest/core';
2
- import {
3
- InternalError,
4
- NotFoundError,
5
- UnauthorizedError,
6
- BadRequestError,
7
- ForbiddenError,
8
- PaginationOptionsZod,
9
- } from '../../../common/types';
10
- import {
11
- ExchangeApiKey,
12
- exchangeApiKeyIdSchema,
13
- PaginatedExchangeApiKeys,
14
- PostExchangeApiKey,
15
- UpdateExchangeApiKey,
16
- ExchangeApiKeyStatusResponse,
17
- } from '../../../common/types/exchange-api-key.types';
18
- import { z } from 'zod';
19
-
20
- const c = initContract();
21
-
22
- export const exchangeApiKeysContract = c.router(
23
- {
24
- postExchangeApiKey: {
25
- summary: 'Create an exchange api key for an account',
26
- method: 'POST',
27
- path: '/',
28
- metadata: {
29
- auth: true,
30
- },
31
- body: PostExchangeApiKey,
32
- responses: {
33
- 201: ExchangeApiKey,
34
- 400: BadRequestError,
35
- 401: UnauthorizedError,
36
- 404: NotFoundError,
37
- 403: ForbiddenError,
38
- 500: InternalError,
39
- },
40
- },
41
- updateExchangeApiKey: {
42
- summary: 'Update an exchange api key for an account',
43
- method: 'PUT',
44
- path: '/:id',
45
- metadata: {
46
- auth: true,
47
- },
48
- pathParams: z.object({
49
- id: exchangeApiKeyIdSchema,
50
- }),
51
- body: UpdateExchangeApiKey,
52
- responses: {
53
- 200: ExchangeApiKey,
54
- 400: BadRequestError,
55
- 401: UnauthorizedError,
56
- 404: NotFoundError,
57
- 403: ForbiddenError,
58
- 500: InternalError,
59
- },
60
- },
61
- getExchangeApiKeys: {
62
- summary: '[ADMIN] Get exchange api keys',
63
- method: 'GET',
64
- path: '/',
65
- metadata: {
66
- auth: true,
67
- },
68
- query: PaginationOptionsZod,
69
- responses: {
70
- 200: PaginatedExchangeApiKeys,
71
- 401: UnauthorizedError,
72
- 403: ForbiddenError,
73
- 404: NotFoundError,
74
- 500: InternalError,
75
- },
76
- },
77
- getExchangeApiKey: {
78
- summary: 'Get exchange api key for an account',
79
- method: 'GET',
80
- path: '/:id',
81
- metadata: {
82
- auth: true,
83
- },
84
- pathParams: z.object({ id: exchangeApiKeyIdSchema }),
85
- responses: {
86
- 200: ExchangeApiKey,
87
- 401: UnauthorizedError,
88
- 403: ForbiddenError,
89
- 404: NotFoundError,
90
- 500: InternalError,
91
- },
92
- },
93
- deactivateExchangeApiKey: {
94
- summary: 'Deactivate an exchange api key for an account',
95
- method: 'GET',
96
- path: '/:id/deactivate',
97
- metadata: {
98
- auth: true,
99
- },
100
- pathParams: z.object({ id: exchangeApiKeyIdSchema }),
101
- responses: {
102
- 200: ExchangeApiKey,
103
- 401: UnauthorizedError,
104
- 403: ForbiddenError,
105
- 404: NotFoundError,
106
- 500: InternalError,
107
- },
108
- },
109
- deleteExchangeApiKey: {
110
- summary: 'Delete an exchange api key for an account',
111
- method: 'DELETE',
112
- path: '/:id',
113
- metadata: {
114
- auth: true,
115
- },
116
- pathParams: z.object({ id: exchangeApiKeyIdSchema }),
117
- responses: {
118
- 200: ExchangeApiKey,
119
- 401: UnauthorizedError,
120
- 403: ForbiddenError,
121
- 404: NotFoundError,
122
- 500: InternalError,
123
- },
124
- },
125
- getExchangeApiKeyStatus: {
126
- summary: 'Get exchange api key status',
127
- method: 'GET',
128
- path: '/:id/status',
129
- metadata: {
130
- auth: false,
131
- },
132
- pathParams: z.object({ id: exchangeApiKeyIdSchema }),
133
- responses: {
134
- 200: ExchangeApiKeyStatusResponse,
135
- 404: NotFoundError,
136
- 500: InternalError,
137
- },
138
- },
139
- },
140
-
141
- {
142
- pathPrefix: 'exchange-api-keys',
143
- },
144
- );
@@ -1,166 +0,0 @@
1
- import { initContract } from '@ts-rest/core';
2
- import {
3
- BadGateWayError,
4
- BadRequestError,
5
- fileIdSchema,
6
- FilesIncludeQuery,
7
- FileZod,
8
- InternalError,
9
- IPaginatedFile,
10
- LinkFileZod,
11
- NotFoundError,
12
- PaginationOptionsZod,
13
- PatchFile,
14
- PostFileQueryParams,
15
- UnauthorizedError,
16
- UnprocessableError,
17
- } from '../../../common/types';
18
- import { z } from 'zod';
19
- import { authHeader, generateApiDescription } from '../../../common/helpers';
20
-
21
- const c = initContract();
22
-
23
- export const filesContract = c.router(
24
- {
25
- postFile: {
26
- summary: 'Upload a file',
27
- description: generateApiDescription(
28
- 'Upload a file to the system.',
29
- 'POST',
30
- '/files',
31
- {
32
- query: {
33
- name: 'test',
34
- category: 'application',
35
- targetId: 'trade_01j5tkg6k2fygr0x06fegt27aj',
36
- },
37
- headers: authHeader,
38
- formData: { file: '@"/Users/local/Desktop/test.csv"' },
39
- },
40
- ),
41
- method: 'POST',
42
- path: '',
43
- query: PostFileQueryParams,
44
- contentType: 'multipart/form-data',
45
- body: c.type<{ file: File }>(),
46
- metadata: {
47
- auth: true,
48
- },
49
- responses: {
50
- 201: FileZod,
51
- 400: BadRequestError,
52
- 401: UnauthorizedError,
53
- 422: UnprocessableError,
54
- 500: InternalError,
55
- 502: BadGateWayError,
56
- },
57
- },
58
- linkFile: {
59
- summary: 'Links a file to a new resource',
60
- method: 'POST',
61
- path: '/:id/link',
62
- pathParams: z.object({
63
- id: fileIdSchema,
64
- }),
65
- body: LinkFileZod,
66
- metadata: {
67
- auth: true,
68
- },
69
- responses: {
70
- 201: FileZod,
71
- 400: BadRequestError,
72
- 401: UnauthorizedError,
73
- 422: UnprocessableError,
74
- 500: InternalError,
75
- 502: BadGateWayError,
76
- },
77
- },
78
- unlinkFile: {
79
- summary: 'Unlinks a file to the parent resource',
80
- method: 'POST',
81
- path: '/:id/unlink',
82
- pathParams: z.object({
83
- id: fileIdSchema,
84
- }),
85
- body: z.object({}),
86
- metadata: {
87
- auth: true,
88
- },
89
- responses: {
90
- 202: FileZod,
91
- 400: BadRequestError,
92
- 401: UnauthorizedError,
93
- 422: UnprocessableError,
94
- 500: InternalError,
95
- 502: BadGateWayError,
96
- },
97
- },
98
- getFiles: {
99
- summary: 'Get files',
100
- method: 'GET',
101
- path: '',
102
- metadata: {
103
- auth: true,
104
- },
105
- query: PaginationOptionsZod.merge(FilesIncludeQuery),
106
- responses: {
107
- 200: IPaginatedFile,
108
- 401: UnauthorizedError,
109
- },
110
- },
111
- getFile: {
112
- summary: 'Get file by id',
113
- method: 'GET',
114
- path: '/:id',
115
- metadata: {
116
- auth: true,
117
- },
118
- pathParams: z.object({
119
- id: fileIdSchema,
120
- }),
121
- responses: {
122
- 200: FileZod,
123
- 401: UnauthorizedError,
124
- 404: NotFoundError,
125
- },
126
- },
127
- patchFile: {
128
- summary: 'Update file by id',
129
- method: 'PATCH',
130
- path: '/:id',
131
- metadata: {
132
- auth: true,
133
- },
134
- pathParams: z.object({
135
- id: fileIdSchema,
136
- }),
137
- body: PatchFile,
138
- responses: {
139
- 201: FileZod,
140
- 400: BadRequestError,
141
- 401: UnauthorizedError,
142
- 404: NotFoundError,
143
- 500: InternalError,
144
- },
145
- },
146
- previewFile: {
147
- summary: 'Preview (stream) a file by id',
148
- method: 'GET',
149
- path: '/preview/:id',
150
- metadata: {
151
- auth: true,
152
- },
153
- pathParams: z.object({
154
- id: fileIdSchema,
155
- }),
156
- responses: {
157
- 200: z.unknown(),
158
- 401: UnauthorizedError,
159
- 404: NotFoundError,
160
- },
161
- },
162
- },
163
- {
164
- pathPrefix: 'files',
165
- },
166
- );