|
1 | | -import type { ClerkPaginationRequest } from '@clerk/types'; |
| 1 | +import type { ClerkPaginationRequest, OrganizationEnrollmentMode } from '@clerk/types'; |
2 | 2 |
|
3 | 3 | import runtime from '../../runtime'; |
4 | 4 | import { joinPaths } from '../../util/path'; |
5 | 5 | import type { |
6 | 6 | Organization, |
| 7 | + OrganizationDomain, |
7 | 8 | OrganizationInvitation, |
8 | 9 | OrganizationInvitationStatus, |
9 | 10 | OrganizationMembership, |
@@ -99,6 +100,29 @@ type RevokeOrganizationInvitationParams = { |
99 | 100 | requestingUserId: string; |
100 | 101 | }; |
101 | 102 |
|
| 103 | +type GetOrganizationDomainListParams = { |
| 104 | + organizationId: string; |
| 105 | + limit?: number; |
| 106 | + offset?: number; |
| 107 | +}; |
| 108 | + |
| 109 | +type CreateOrganizationDomainParams = { |
| 110 | + organizationId: string; |
| 111 | + name: string; |
| 112 | + enrollmentMode: OrganizationEnrollmentMode; |
| 113 | + verified?: boolean; |
| 114 | +}; |
| 115 | + |
| 116 | +type UpdateOrganizationDomainParams = { |
| 117 | + organizationId: string; |
| 118 | + domainId: string; |
| 119 | +} & Partial<CreateOrganizationDomainParams>; |
| 120 | + |
| 121 | +type DeleteOrganizationDomainParams = { |
| 122 | + organizationId: string; |
| 123 | + domainId: string; |
| 124 | +}; |
| 125 | + |
102 | 126 | export class OrganizationAPI extends AbstractAPI { |
103 | 127 | public async getOrganizationList(params?: GetOrganizationListParams) { |
104 | 128 | return this.request<PaginatedResourceResponse<Organization[]>>({ |
@@ -285,4 +309,53 @@ export class OrganizationAPI extends AbstractAPI { |
285 | 309 | }, |
286 | 310 | }); |
287 | 311 | } |
| 312 | + |
| 313 | + public async getOrganizationDomainList(params: GetOrganizationDomainListParams) { |
| 314 | + const { organizationId, limit, offset } = params; |
| 315 | + this.requireId(organizationId); |
| 316 | + |
| 317 | + return this.request<PaginatedResourceResponse<OrganizationDomain[]>>({ |
| 318 | + method: 'GET', |
| 319 | + path: joinPaths(basePath, organizationId, 'domains'), |
| 320 | + queryParams: { limit, offset }, |
| 321 | + }); |
| 322 | + } |
| 323 | + |
| 324 | + public async createOrganizationDomain(params: CreateOrganizationDomainParams) { |
| 325 | + const { organizationId, name, enrollmentMode, verified = true } = params; |
| 326 | + this.requireId(organizationId); |
| 327 | + |
| 328 | + return this.request<OrganizationDomain>({ |
| 329 | + method: 'POST', |
| 330 | + path: joinPaths(basePath, organizationId, 'domains'), |
| 331 | + bodyParams: { |
| 332 | + name, |
| 333 | + enrollmentMode, |
| 334 | + verified, |
| 335 | + }, |
| 336 | + }); |
| 337 | + } |
| 338 | + |
| 339 | + public async updateOrganizationDomain(params: UpdateOrganizationDomainParams) { |
| 340 | + const { organizationId, domainId, ...bodyParams } = params; |
| 341 | + this.requireId(organizationId); |
| 342 | + this.requireId(domainId); |
| 343 | + |
| 344 | + return this.request<OrganizationDomain>({ |
| 345 | + method: 'PATCH', |
| 346 | + path: joinPaths(basePath, organizationId, 'domains', domainId), |
| 347 | + bodyParams, |
| 348 | + }); |
| 349 | + } |
| 350 | + |
| 351 | + public async deleteOrganizationDomain(params: DeleteOrganizationDomainParams) { |
| 352 | + const { organizationId, domainId } = params; |
| 353 | + this.requireId(organizationId); |
| 354 | + this.requireId(domainId); |
| 355 | + |
| 356 | + return this.request<OrganizationDomain>({ |
| 357 | + method: 'DELETE', |
| 358 | + path: joinPaths(basePath, organizationId, 'domains', domainId), |
| 359 | + }); |
| 360 | + } |
288 | 361 | } |
0 commit comments