@dalmore/api-contracts 0.0.0-dev.2dc8e92 → 0.0.0-dev.4bb6b7a

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 (206) 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/activity.types.ts +1 -1
  7. package/common/types/api-key-logs.types.ts +1 -1
  8. package/common/types/asset.types.ts +14 -14
  9. package/common/types/auth.types.ts +7 -18
  10. package/common/types/bonus-tier.types.ts +33 -0
  11. package/common/types/cart.types.ts +4 -1
  12. package/common/types/common.types.ts +38 -6
  13. package/common/types/contact-us.types.ts +6 -2
  14. package/common/types/covered-person.types.ts +2 -1
  15. package/common/types/dashboard.types.ts +2 -9
  16. package/common/types/disbursements.types.ts +119 -3
  17. package/common/types/escrow-account.types.ts +3 -3
  18. package/common/types/file.types.ts +20 -4
  19. package/common/types/i-will-do-it-later.types.ts +68 -0
  20. package/common/types/index.ts +2 -0
  21. package/common/types/individuals.types.ts +5 -17
  22. package/common/types/investor-account.types.ts +2 -1
  23. package/common/types/invite.types.ts +27 -1
  24. package/common/types/issuer-offering.types.ts +113 -30
  25. package/common/types/issuer-payment-method.types.ts +41 -0
  26. package/common/types/issuer.types.ts +9 -0
  27. package/common/types/legal-entity.types.ts +3 -2
  28. package/common/types/mail-template.types.ts +34 -0
  29. package/common/types/note.types.ts +1 -1
  30. package/common/types/notification.types.ts +525 -29
  31. package/common/types/offering.types.ts +106 -20
  32. package/common/types/site-settings.types.ts +2 -1
  33. package/common/types/site.types.ts +2 -9
  34. package/common/types/{trade-line-item.type.ts → trade-line-item.types.ts} +2 -9
  35. package/common/types/trade.types.ts +118 -2
  36. package/common/types/transaction.types.ts +12 -1
  37. package/common/types/trusted-contact.types.ts +7 -7
  38. package/common/types/user.types.ts +17 -33
  39. package/common/types/webhook.types.ts +142 -0
  40. package/contracts/{investors → clients}/cart/index.ts +11 -6
  41. package/contracts/clients/index.ts +10 -0
  42. package/contracts/{investors → clients}/issuer-payment-methods/index.ts +5 -2
  43. package/contracts/{compliance → clients}/payment-methods/index.ts +40 -12
  44. package/contracts/{investors → clients}/trade-line-items/index.ts +19 -28
  45. package/contracts/clients/trades/index.ts +65 -1
  46. package/contracts/{investors → clients}/transactions/index.ts +3 -3
  47. package/index.ts +10 -0
  48. package/package.json +23 -32
  49. package/contracts/compliance/account-contacts/index.ts +0 -82
  50. package/contracts/compliance/account-managers/index.ts +0 -142
  51. package/contracts/compliance/accounts/index.ts +0 -187
  52. package/contracts/compliance/activities/index.ts +0 -55
  53. package/contracts/compliance/aic/index.ts +0 -60
  54. package/contracts/compliance/api-keys/index.ts +0 -91
  55. package/contracts/compliance/assets/index.ts +0 -122
  56. package/contracts/compliance/auth/index.ts +0 -134
  57. package/contracts/compliance/batch-jobs/index.ts +0 -62
  58. package/contracts/compliance/bonus-tiers/index.ts +0 -55
  59. package/contracts/compliance/checklist/index.ts +0 -87
  60. package/contracts/compliance/checklist-items/index.ts +0 -86
  61. package/contracts/compliance/covered-persons/index.ts +0 -97
  62. package/contracts/compliance/dashboard/index.ts +0 -111
  63. package/contracts/compliance/data-records/index.ts +0 -116
  64. package/contracts/compliance/data-rooms/index.ts +0 -113
  65. package/contracts/compliance/default-theme-configs/index.ts +0 -95
  66. package/contracts/compliance/disbursement/index.ts +0 -165
  67. package/contracts/compliance/disbursement-approval-users/index.ts +0 -84
  68. package/contracts/compliance/disbursement-transactions/index.ts +0 -37
  69. package/contracts/compliance/domain-filters/index.ts +0 -117
  70. package/contracts/compliance/email-themes/index.ts +0 -284
  71. package/contracts/compliance/escrow-accounts/index.ts +0 -85
  72. package/contracts/compliance/exchange-api-keys/index.ts +0 -129
  73. package/contracts/compliance/exchange-imports/index.ts +0 -137
  74. package/contracts/compliance/files/index.ts +0 -267
  75. package/contracts/compliance/files-public/index.ts +0 -188
  76. package/contracts/compliance/health/index.ts +0 -26
  77. package/contracts/compliance/index.ts +0 -147
  78. package/contracts/compliance/individuals/index.ts +0 -57
  79. package/contracts/compliance/investor-accounts/index.ts +0 -141
  80. package/contracts/compliance/invites/index.ts +0 -137
  81. package/contracts/compliance/issuer-bank-accounts/index.ts +0 -81
  82. package/contracts/compliance/issuer-payment-methods/index.ts +0 -81
  83. package/contracts/compliance/issuers/index.ts +0 -97
  84. package/contracts/compliance/job-items/index.ts +0 -58
  85. package/contracts/compliance/jobs/index.ts +0 -59
  86. package/contracts/compliance/kyb/index.ts +0 -54
  87. package/contracts/compliance/kyc/index.ts +0 -77
  88. package/contracts/compliance/legal-entities/index.ts +0 -57
  89. package/contracts/compliance/login-histories/index.ts +0 -37
  90. package/contracts/compliance/notes/index.ts +0 -69
  91. package/contracts/compliance/notion-databases/index.ts +0 -107
  92. package/contracts/compliance/notion-pages/index.ts +0 -105
  93. package/contracts/compliance/offering-reports/index.ts +0 -149
  94. package/contracts/compliance/offerings/index.ts +0 -233
  95. package/contracts/compliance/pages/index.ts +0 -178
  96. package/contracts/compliance/rejection-reasons/index.ts +0 -32
  97. package/contracts/compliance/review/index.ts +0 -169
  98. package/contracts/compliance/roles/index.ts +0 -34
  99. package/contracts/compliance/secondary-customers/index.ts +0 -77
  100. package/contracts/compliance/secondary-orders/index.ts +0 -60
  101. package/contracts/compliance/secondary-trades/index.ts +0 -100
  102. package/contracts/compliance/secure-requests/index.ts +0 -54
  103. package/contracts/compliance/signer/index.ts +0 -369
  104. package/contracts/compliance/site-links/index.ts +0 -128
  105. package/contracts/compliance/site-settings/index.ts +0 -669
  106. package/contracts/compliance/sites/index.ts +0 -56
  107. package/contracts/compliance/state-machine/index.ts +0 -94
  108. package/contracts/compliance/tasks/index.ts +0 -91
  109. package/contracts/compliance/third-parties/index.ts +0 -52
  110. package/contracts/compliance/trade-line-items/index.ts +0 -59
  111. package/contracts/compliance/trades/index.ts +0 -230
  112. package/contracts/compliance/transactions/index.ts +0 -161
  113. package/contracts/compliance/user-manuals/index.ts +0 -271
  114. package/contracts/compliance/user-settings/index.ts +0 -189
  115. package/contracts/compliance/users/index.ts +0 -200
  116. package/contracts/compliance/webhooks/index.ts +0 -41
  117. package/contracts/compliance-apikey/accounts/index.ts +0 -58
  118. package/contracts/compliance-apikey/index.ts +0 -14
  119. package/contracts/index.ts +0 -6
  120. package/contracts/investors/account-contacts/index.ts +0 -58
  121. package/contracts/investors/aic/index.ts +0 -59
  122. package/contracts/investors/assets/index.ts +0 -61
  123. package/contracts/investors/auth/index.ts +0 -116
  124. package/contracts/investors/bonus-tiers/index.ts +0 -37
  125. package/contracts/investors/contact-us/index.ts +0 -48
  126. package/contracts/investors/data-records/index.ts +0 -113
  127. package/contracts/investors/data-rooms/index.ts +0 -96
  128. package/contracts/investors/files/index.ts +0 -167
  129. package/contracts/investors/files-public/index.ts +0 -185
  130. package/contracts/investors/index.ts +0 -72
  131. package/contracts/investors/individuals/index.ts +0 -99
  132. package/contracts/investors/investor-accounts/index.ts +0 -110
  133. package/contracts/investors/issuers/index.ts +0 -30
  134. package/contracts/investors/legal-entities/index.ts +0 -93
  135. package/contracts/investors/notes/index.ts +0 -69
  136. package/contracts/investors/offerings/index.ts +0 -93
  137. package/contracts/investors/pages/index.ts +0 -88
  138. package/contracts/investors/payment-methods/index.ts +0 -149
  139. package/contracts/investors/portfolios/index.ts +0 -53
  140. package/contracts/investors/sites/index.ts +0 -96
  141. package/contracts/investors/tasks/index.ts +0 -111
  142. package/contracts/investors/trades/index.ts +0 -114
  143. package/contracts/investors/trusted-contacts/index.ts +0 -93
  144. package/contracts/investors/user-manuals/index.ts +0 -62
  145. package/contracts/investors/user-settings/index.ts +0 -170
  146. package/contracts/investors/users/index.ts +0 -45
  147. package/contracts/investors/webhooks/index.ts +0 -30
  148. package/contracts/issuers/account-contacts/index.ts +0 -76
  149. package/contracts/issuers/account-integrations/index.ts +0 -97
  150. package/contracts/issuers/accounts/index.ts +0 -97
  151. package/contracts/issuers/activities/index.ts +0 -54
  152. package/contracts/issuers/aic/index.ts +0 -39
  153. package/contracts/issuers/api-key-logs/index.ts +0 -53
  154. package/contracts/issuers/api-keys/index.ts +0 -93
  155. package/contracts/issuers/assets/index.ts +0 -122
  156. package/contracts/issuers/auth/index.ts +0 -152
  157. package/contracts/issuers/bonus-tiers/index.ts +0 -55
  158. package/contracts/issuers/contact-us/index.ts +0 -48
  159. package/contracts/issuers/covered-persons/index.ts +0 -136
  160. package/contracts/issuers/dashboard/index.ts +0 -72
  161. package/contracts/issuers/data-records/index.ts +0 -257
  162. package/contracts/issuers/data-rooms/index.ts +0 -134
  163. package/contracts/issuers/disbursement-approval-users/index.ts +0 -82
  164. package/contracts/issuers/disbursement-transactions/index.ts +0 -53
  165. package/contracts/issuers/disbursements/index.ts +0 -153
  166. package/contracts/issuers/email-themes/index.ts +0 -242
  167. package/contracts/issuers/escrow-accounts/index.ts +0 -81
  168. package/contracts/issuers/exchange-api-keys/index.ts +0 -144
  169. package/contracts/issuers/files/index.ts +0 -166
  170. package/contracts/issuers/files-public/index.ts +0 -166
  171. package/contracts/issuers/health/index.ts +0 -24
  172. package/contracts/issuers/index.ts +0 -112
  173. package/contracts/issuers/investor-accounts/index.ts +0 -148
  174. package/contracts/issuers/invites/index.ts +0 -129
  175. package/contracts/issuers/issuer/index.ts +0 -94
  176. package/contracts/issuers/issuer-bank-accounts/index.ts +0 -81
  177. package/contracts/issuers/issuer-payment-methods/index.ts +0 -136
  178. package/contracts/issuers/kyc/index.ts +0 -38
  179. package/contracts/issuers/login-histories/index.ts +0 -51
  180. package/contracts/issuers/notes/index.ts +0 -69
  181. package/contracts/issuers/offerings/index.ts +0 -206
  182. package/contracts/issuers/pages/index.ts +0 -138
  183. package/contracts/issuers/payment-methods/index.ts +0 -61
  184. package/contracts/issuers/portfolios/index.ts +0 -36
  185. package/contracts/issuers/rejection-reasons/index.ts +0 -32
  186. package/contracts/issuers/review/index.ts +0 -63
  187. package/contracts/issuers/secondary-customers/index.ts +0 -55
  188. package/contracts/issuers/secondary-orders/index.ts +0 -57
  189. package/contracts/issuers/secondary-trades/index.ts +0 -57
  190. package/contracts/issuers/secure-requests/index.ts +0 -34
  191. package/contracts/issuers/site-links/index.ts +0 -116
  192. package/contracts/issuers/site-settings/index.ts +0 -585
  193. package/contracts/issuers/sites/index.ts +0 -32
  194. package/contracts/issuers/tasks/index.ts +0 -111
  195. package/contracts/issuers/trades/index.ts +0 -132
  196. package/contracts/issuers/transactions/index.ts +0 -158
  197. package/contracts/issuers/user-manuals/index.ts +0 -62
  198. package/contracts/issuers/user-settings/index.ts +0 -170
  199. package/contracts/issuers/users/index.ts +0 -126
  200. package/contracts/secondaries/accounts/index.ts +0 -58
  201. package/contracts/secondaries/index.ts +0 -23
  202. package/contracts/secondaries/secondary-customers/index.ts +0 -55
  203. package/contracts/secondaries/secondary-issuers/index.ts +0 -94
  204. package/contracts/secondaries/secondary-orders/index.ts +0 -56
  205. package/contracts/secondaries/secondary-securities/index.ts +0 -95
  206. package/contracts/secondaries/secondary-trades/index.ts +0 -56
@@ -1,55 +0,0 @@
1
- import { initContract } from '@ts-rest/core';
2
- import {
3
- BadRequestError,
4
- ForbiddenError,
5
- InternalError,
6
- UnauthorizedError,
7
- } from '../../../common/types';
8
- import {
9
- EstimateBonusTierCalculationResponseZod,
10
- EstimateBonusTierCalculationZod,
11
- IBonusTierList,
12
- PostBonusTierZod,
13
- } from '../../../common/types/bonus-tier.types';
14
-
15
- const c = initContract();
16
-
17
- export const bonusTiersContract = c.router(
18
- {
19
- estimateCalculation: {
20
- summary: 'Estimate bonus tier calculation',
21
- method: 'POST',
22
- path: '/estimate-calculation',
23
- metadata: {
24
- auth: true,
25
- },
26
- body: EstimateBonusTierCalculationZod,
27
- responses: {
28
- 200: EstimateBonusTierCalculationResponseZod,
29
- 400: BadRequestError,
30
- 401: UnauthorizedError,
31
- 403: ForbiddenError,
32
- 500: InternalError,
33
- },
34
- },
35
- postBonusTier: {
36
- summary: 'Create a new bonus tier',
37
- method: 'POST',
38
- path: '/',
39
- metadata: {
40
- auth: true,
41
- },
42
- body: PostBonusTierZod,
43
- responses: {
44
- 201: IBonusTierList,
45
- 400: BadRequestError,
46
- 401: UnauthorizedError,
47
- 403: ForbiddenError,
48
- 500: InternalError,
49
- },
50
- },
51
- },
52
- {
53
- pathPrefix: 'bonus-tiers',
54
- },
55
- );
@@ -1,48 +0,0 @@
1
- import { initContract } from '@ts-rest/core';
2
- import {
3
- BadRequestError,
4
- InternalError,
5
- UnauthorizedError,
6
- } from '../../../common/types';
7
- import {
8
- PostContactUsResponse,
9
- PostContactUsZod,
10
- PublicIssuerContactUsZod,
11
- } from '../../../common/types/contact-us.types';
12
-
13
- const c = initContract();
14
-
15
- export const contactUsContract = c.router(
16
- {
17
- postContactUsPublic: {
18
- summary: 'Post Contact us for public users',
19
- method: 'POST',
20
- path: '/public',
21
- body: PublicIssuerContactUsZod,
22
- responses: {
23
- 201: PostContactUsResponse,
24
- 400: BadRequestError,
25
- 401: UnauthorizedError,
26
- 500: InternalError,
27
- },
28
- },
29
- postContactUs: {
30
- summary: 'Post Contact us',
31
- method: 'POST',
32
- path: '',
33
- metadata: {
34
- auth: true,
35
- },
36
- body: PostContactUsZod,
37
- responses: {
38
- 201: PostContactUsResponse,
39
- 400: BadRequestError,
40
- 401: UnauthorizedError,
41
- 500: InternalError,
42
- },
43
- },
44
- },
45
- {
46
- pathPrefix: 'contact-us',
47
- },
48
- );
@@ -1,136 +0,0 @@
1
- import { initContract } from '@ts-rest/core';
2
- import {
3
- BadRequestError,
4
- CoveredPersonDeleteResponse,
5
- ForbiddenError,
6
- InternalError,
7
- NotFoundError,
8
- PaginationOptionsZod,
9
- PatchCoveredPersonsZod,
10
- PreconditionFailedError,
11
- ReviewCoveredPersons,
12
- UnauthorizedError,
13
- } from '../../../common/types';
14
-
15
- import {
16
- coveredPersonIdSchema,
17
- CoveredPersonsIncludeQuery,
18
- GetCoveredPersonsZod,
19
- ICoveredPerson,
20
- IPaginatedCoveredPerson,
21
- PostCoveredPersonsZod,
22
- } from '../../../common/types';
23
- import { z } from 'zod';
24
-
25
- const c = initContract();
26
-
27
- export const coveredPersonsContract = c.router(
28
- {
29
- getCoveredPersons: {
30
- summary: 'Get Covered Persons',
31
- method: 'GET',
32
- path: '',
33
- metadata: {
34
- auth: true,
35
- },
36
- query: PaginationOptionsZod.merge(CoveredPersonsIncludeQuery).merge(
37
- GetCoveredPersonsZod,
38
- ),
39
- responses: {
40
- 200: IPaginatedCoveredPerson,
41
- 401: UnauthorizedError,
42
- 403: ForbiddenError,
43
- 500: InternalError,
44
- },
45
- },
46
- postCoveredPersons: {
47
- summary: 'Create a covered person',
48
- method: 'POST',
49
- path: '',
50
- metadata: {
51
- auth: true,
52
- },
53
- body: PostCoveredPersonsZod,
54
- responses: {
55
- 201: ICoveredPerson,
56
- 401: UnauthorizedError,
57
- 403: ForbiddenError,
58
- 404: NotFoundError,
59
- 412: PreconditionFailedError,
60
- 500: InternalError,
61
- },
62
- },
63
- getCoveredPerson: {
64
- summary: 'Get covered person by id',
65
- method: 'GET',
66
- path: '/:id',
67
- metadata: {
68
- auth: true,
69
- },
70
- query: z.object({}).merge(CoveredPersonsIncludeQuery),
71
- pathParams: z.object({ id: coveredPersonIdSchema }),
72
- responses: {
73
- 200: ICoveredPerson,
74
- 401: UnauthorizedError,
75
- 403: ForbiddenError,
76
- 404: NotFoundError,
77
- },
78
- },
79
- patchCoveredPerson: {
80
- summary: 'Update covered person',
81
- method: 'PATCH',
82
- path: '/:id',
83
- metadata: {
84
- auth: true,
85
- },
86
- pathParams: z.object({ id: coveredPersonIdSchema }),
87
- body: PatchCoveredPersonsZod,
88
- responses: {
89
- 201: ICoveredPerson,
90
- 400: BadRequestError,
91
- 401: UnauthorizedError,
92
- 403: ForbiddenError,
93
- 404: NotFoundError,
94
- 500: InternalError,
95
- },
96
- },
97
- reviewCoveredPersons: {
98
- summary: 'Review CoveredPersons',
99
- method: 'POST',
100
- path: '/review',
101
- metadata: {
102
- auth: true,
103
- },
104
- body: ReviewCoveredPersons,
105
- responses: {
106
- 201: z.object({ success: z.boolean() }),
107
- 401: UnauthorizedError,
108
- 403: ForbiddenError,
109
- 404: NotFoundError,
110
- 500: InternalError,
111
- },
112
- },
113
- deleteCoveredPerson: {
114
- summary: 'Delete covered person by id',
115
- method: 'DELETE',
116
- path: '/:id',
117
- metadata: {
118
- auth: true,
119
- },
120
- pathParams: z.object({
121
- id: coveredPersonIdSchema,
122
- }),
123
- responses: {
124
- 200: CoveredPersonDeleteResponse,
125
- 400: BadRequestError,
126
- 401: UnauthorizedError,
127
- 403: ForbiddenError,
128
- 404: NotFoundError,
129
- 500: InternalError,
130
- },
131
- },
132
- },
133
- {
134
- pathPrefix: 'covered-persons',
135
- },
136
- );
@@ -1,72 +0,0 @@
1
- import { initContract } from '@ts-rest/core';
2
- import {
3
- ForbiddenError,
4
- InternalError,
5
- NotFoundError,
6
- offeringIdSchema,
7
- UnauthorizedError,
8
- } from '../../../common/types';
9
- import {
10
- GetInvestmentDashboardQueryZod,
11
- InvestmentDashboardZod,
12
- IssuerDashboardZod,
13
- IssuersOfferingDashboardZod,
14
- } from '../../../common/types/dashboard.types';
15
- import { z } from 'zod';
16
-
17
- const c = initContract();
18
-
19
- export const dashboardContract = c.router(
20
- {
21
- getDashboard: {
22
- summary: 'Get dashboard for issuers',
23
- method: 'GET',
24
- path: '',
25
- metadata: {
26
- auth: true,
27
- },
28
- responses: {
29
- 200: IssuerDashboardZod,
30
- 401: UnauthorizedError,
31
- 403: ForbiddenError,
32
- 500: InternalError,
33
- },
34
- },
35
- getOfferingDashboard: {
36
- summary: 'Get offerings dashboard for approved offerings for issuers',
37
- method: 'GET',
38
- path: '/offerings/:id',
39
- metadata: {
40
- auth: true,
41
- },
42
- pathParams: z.object({
43
- id: offeringIdSchema,
44
- }),
45
- responses: {
46
- 200: IssuersOfferingDashboardZod,
47
- 401: UnauthorizedError,
48
- 403: ForbiddenError,
49
- 404: NotFoundError,
50
- 500: InternalError,
51
- },
52
- },
53
- getInvestmentDashboard: {
54
- summary: 'Get investment dashboard for issuers',
55
- method: 'GET',
56
- path: '/investments',
57
- metadata: {
58
- auth: true,
59
- },
60
- query: GetInvestmentDashboardQueryZod,
61
- responses: {
62
- 200: InvestmentDashboardZod,
63
- 401: UnauthorizedError,
64
- 403: ForbiddenError,
65
- 500: InternalError,
66
- },
67
- },
68
- },
69
- {
70
- pathPrefix: 'dashboard',
71
- },
72
- );
@@ -1,257 +0,0 @@
1
- import { initContract } from '@ts-rest/core';
2
- import {
3
- BadRequestError,
4
- ForbiddenError,
5
- InternalError,
6
- NotFoundError,
7
- PaginationOptionsZod,
8
- UnauthorizedError,
9
- } from '../../../common/types';
10
- import {
11
- dataRecordFileIdSchema,
12
- DataRecordFileZod,
13
- dataRecordIdSchema,
14
- DataRecordsFilters,
15
- DataRecordsIncludeQuery,
16
- DataRecordStructureZod,
17
- DataRecordZod,
18
- DeleteDataRecordFile,
19
- DeleteDataRecordFolder,
20
- IPaginatedDataRecords,
21
- MoveDataRecordFile,
22
- MoveDataRecordFolder,
23
- NavigationSummaryZod,
24
- PatchDataRecordFile,
25
- PatchDataRecordFolder,
26
- PostDataRecordFile,
27
- PostDataRecordFolder,
28
- RecordPathResponse,
29
- } from '../../../common/types/data-record.types';
30
- import { z } from 'zod';
31
-
32
- const c = initContract();
33
-
34
- export const dataRecordsContract = c.router(
35
- {
36
- getDataRecords: {
37
- summary: 'Get Data Records',
38
- method: 'GET',
39
- path: '',
40
- metadata: {
41
- auth: true,
42
- },
43
- query: PaginationOptionsZod.merge(DataRecordsFilters).merge(
44
- DataRecordsIncludeQuery,
45
- ),
46
- responses: {
47
- 200: IPaginatedDataRecords,
48
- 401: UnauthorizedError,
49
- 403: ForbiddenError,
50
- 500: InternalError,
51
- },
52
- },
53
- getDataRecord: {
54
- summary: 'Get data record by id',
55
- method: 'GET',
56
- path: '/:id',
57
- metadata: {
58
- auth: true,
59
- },
60
- pathParams: z.object({ id: dataRecordIdSchema }),
61
- query: DataRecordsIncludeQuery,
62
- responses: {
63
- 200: DataRecordZod,
64
- 401: UnauthorizedError,
65
- 403: ForbiddenError,
66
- 404: NotFoundError,
67
- 500: InternalError,
68
- },
69
- },
70
- getDataRecordStructure: {
71
- summary:
72
- 'Get data record structure by id - shows the proper tree structure of the data record',
73
- method: 'GET',
74
- path: '/:id/structure',
75
- metadata: {
76
- auth: true,
77
- },
78
- pathParams: z.object({ id: dataRecordIdSchema }),
79
- responses: {
80
- 200: DataRecordStructureZod,
81
- 401: UnauthorizedError,
82
- 403: ForbiddenError,
83
- 404: NotFoundError,
84
- 500: InternalError,
85
- },
86
- },
87
- getDataRecordPath: {
88
- summary:
89
- 'Get data record path by id - useful for navigation and showing the user where they are in the folder structure. Returns the path to the record',
90
- method: 'GET',
91
- path: '/:id/path',
92
- metadata: {
93
- auth: true,
94
- },
95
- pathParams: z.object({ id: dataRecordIdSchema }),
96
- responses: {
97
- 200: RecordPathResponse,
98
- 401: UnauthorizedError,
99
- 403: ForbiddenError,
100
- 404: NotFoundError,
101
- 500: InternalError,
102
- },
103
- },
104
- getNavigationSummary: {
105
- summary:
106
- 'Get navigation summary for a data record - useful for breadcrumbs',
107
- method: 'GET',
108
- path: '/:id/navigation',
109
- metadata: {
110
- auth: true,
111
- },
112
- pathParams: z.object({ id: dataRecordIdSchema }),
113
- responses: {
114
- 200: NavigationSummaryZod,
115
- 401: UnauthorizedError,
116
- 403: ForbiddenError,
117
- 500: InternalError,
118
- },
119
- },
120
- postDataRecordFolder: {
121
- summary: 'Create a data record folder',
122
- method: 'POST',
123
- path: '/folders',
124
- metadata: {
125
- auth: true,
126
- },
127
- body: PostDataRecordFolder,
128
- responses: {
129
- 201: DataRecordZod,
130
- 401: UnauthorizedError,
131
- 403: ForbiddenError,
132
- 404: NotFoundError,
133
- 500: InternalError,
134
- },
135
- },
136
- patchDataRecordFolder: {
137
- summary: 'Update data record folder',
138
- method: 'PATCH',
139
- path: '/:id',
140
- metadata: {
141
- auth: true,
142
- },
143
- pathParams: z.object({ id: dataRecordIdSchema }),
144
- body: PatchDataRecordFolder,
145
- responses: {
146
- 201: DataRecordZod,
147
- 400: BadRequestError,
148
- 401: UnauthorizedError,
149
- 403: ForbiddenError,
150
- 404: NotFoundError,
151
- 500: InternalError,
152
- },
153
- },
154
- deleteDataRecordFolder: {
155
- summary:
156
- 'Deletes a folder and optionally(force=true) all its contents (subfolders and file associations)',
157
- method: 'DELETE',
158
- path: '/folders',
159
- metadata: {
160
- auth: true,
161
- },
162
- body: DeleteDataRecordFolder,
163
- responses: {
164
- 204: z.object({ success: z.boolean() }),
165
- 401: UnauthorizedError,
166
- 403: ForbiddenError,
167
- 404: NotFoundError,
168
- 500: InternalError,
169
- },
170
- },
171
- moveDataRecordFolder: {
172
- summary: 'Move a data record folder to a new parent',
173
- method: 'POST',
174
- path: '/folders/move',
175
- metadata: {
176
- auth: true,
177
- },
178
- body: MoveDataRecordFolder,
179
- responses: {
180
- 201: DataRecordZod,
181
- 401: UnauthorizedError,
182
- 403: ForbiddenError,
183
- 404: NotFoundError,
184
- 500: InternalError,
185
- },
186
- },
187
- postDataRecordFile: {
188
- summary: 'Create a data record file object to a folder',
189
- method: 'POST',
190
- path: '/files',
191
- metadata: {
192
- auth: true,
193
- },
194
- body: PostDataRecordFile,
195
- responses: {
196
- 201: DataRecordFileZod,
197
- 401: UnauthorizedError,
198
- 403: ForbiddenError,
199
- 404: NotFoundError,
200
- 500: InternalError,
201
- },
202
- },
203
- patchDataRecordFile: {
204
- summary: 'Add a file to a folder via a data record file object',
205
- method: 'PATCH',
206
- path: '/files/:id',
207
- metadata: {
208
- auth: true,
209
- },
210
- pathParams: z.object({ id: dataRecordFileIdSchema }),
211
- body: PatchDataRecordFile,
212
- responses: {
213
- 201: DataRecordFileZod,
214
- 401: UnauthorizedError,
215
- 403: ForbiddenError,
216
- 404: NotFoundError,
217
- 500: InternalError,
218
- },
219
- },
220
- deleteDataRecordFile: {
221
- summary:
222
- 'Delete a data record file from a folder - note that this does not delete the file itself',
223
- method: 'DELETE',
224
- path: '/files',
225
- metadata: {
226
- auth: true,
227
- },
228
- body: DeleteDataRecordFile,
229
- responses: {
230
- 204: z.object({ success: z.boolean() }),
231
- 401: UnauthorizedError,
232
- 403: ForbiddenError,
233
- 404: NotFoundError,
234
- 500: InternalError,
235
- },
236
- },
237
- moveDataRecordFile: {
238
- summary: 'Move a data record file from folder A to folder B',
239
- method: 'POST',
240
- path: '/files/move',
241
- metadata: {
242
- auth: true,
243
- },
244
- body: MoveDataRecordFile,
245
- responses: {
246
- 201: DataRecordFileZod,
247
- 401: UnauthorizedError,
248
- 403: ForbiddenError,
249
- 404: NotFoundError,
250
- 500: InternalError,
251
- },
252
- },
253
- },
254
- {
255
- pathPrefix: 'data-records',
256
- },
257
- );
@@ -1,134 +0,0 @@
1
- import { z } from 'zod';
2
- import { initContract } from '@ts-rest/core';
3
- import {
4
- BadRequestError,
5
- ForbiddenError,
6
- InternalError,
7
- NotFoundError,
8
- PaginationOptionsZod,
9
- UnauthorizedError,
10
- } from '../../../common/types';
11
- import {
12
- dataRoomIdSchema,
13
- DataRoomPasswordQueryZod,
14
- DataRoomsFilters,
15
- DataRoomsIncludeQuery,
16
- DataRoomStructureZod,
17
- DataRoomZod,
18
- DeleteDataRoom,
19
- IPaginatedDataRooms,
20
- PatchDataRoomZod,
21
- PostDataRoom,
22
- } from '../../../common/types/data-room.types';
23
-
24
- const c = initContract();
25
-
26
- export const dataRoomsContract = c.router(
27
- {
28
- getDataRooms: {
29
- summary:
30
- 'Get Data Rooms - returns flat data room objects. See getDataRoomStructure for tree structure',
31
- method: 'GET',
32
- path: '',
33
- metadata: {
34
- auth: true,
35
- },
36
- query: PaginationOptionsZod.merge(DataRoomsFilters).merge(
37
- DataRoomsIncludeQuery,
38
- ),
39
- responses: {
40
- 200: IPaginatedDataRooms,
41
- 401: UnauthorizedError,
42
- 403: ForbiddenError,
43
- 500: InternalError,
44
- },
45
- },
46
- getDataRoom: {
47
- summary:
48
- 'Get data room by id - returns a flat data room object. See getDataRoomStructure for tree structure',
49
- method: 'GET',
50
- path: '/:id',
51
- metadata: {
52
- auth: true,
53
- },
54
- query: DataRoomsIncludeQuery.merge(DataRoomPasswordQueryZod),
55
- pathParams: z.object({ id: dataRoomIdSchema }),
56
- responses: {
57
- 200: DataRoomZod,
58
- 401: UnauthorizedError,
59
- 403: ForbiddenError,
60
- 404: NotFoundError,
61
- },
62
- },
63
- getDataRoomStructure: {
64
- summary:
65
- 'Get data room structure by id - shows the proper tree structure of the data room',
66
- method: 'GET',
67
- path: '/:id/structure',
68
- metadata: {
69
- auth: true,
70
- },
71
- pathParams: z.object({ id: dataRoomIdSchema }),
72
- query: DataRoomPasswordQueryZod,
73
- responses: {
74
- 200: DataRoomStructureZod,
75
- 401: UnauthorizedError,
76
- 403: ForbiddenError,
77
- 404: NotFoundError,
78
- 500: InternalError,
79
- },
80
- },
81
- postDataRoom: {
82
- summary: 'Create a data room',
83
- method: 'POST',
84
- path: '',
85
- metadata: {
86
- auth: true,
87
- },
88
- body: PostDataRoom,
89
- responses: {
90
- 201: DataRoomZod,
91
- 401: UnauthorizedError,
92
- 403: ForbiddenError,
93
- 500: InternalError,
94
- },
95
- },
96
- patchDataRoom: {
97
- summary: 'Update data room',
98
- method: 'PATCH',
99
- path: '/:id',
100
- metadata: {
101
- auth: true,
102
- },
103
- pathParams: z.object({ id: dataRoomIdSchema }),
104
- body: PatchDataRoomZod,
105
- responses: {
106
- 201: DataRoomZod,
107
- 400: BadRequestError,
108
- 401: UnauthorizedError,
109
- 403: ForbiddenError,
110
- 404: NotFoundError,
111
- 500: InternalError,
112
- },
113
- },
114
- deleteDataRoom: {
115
- summary:
116
- 'Deletes a data room and optionally (force=true) all its contents (subfolders and file associations)',
117
- method: 'DELETE',
118
- path: '',
119
- metadata: {
120
- auth: true,
121
- },
122
- body: DeleteDataRoom,
123
- responses: {
124
- 204: z.object({ success: z.boolean() }),
125
- 401: UnauthorizedError,
126
- 403: ForbiddenError,
127
- 500: InternalError,
128
- },
129
- },
130
- },
131
- {
132
- pathPrefix: 'data-rooms',
133
- },
134
- );