diff --git a/.oagen-manifest.json b/.oagen-manifest.json index ba29803e3..ea576d55a 100644 --- a/.oagen-manifest.json +++ b/.oagen-manifest.json @@ -1,8 +1,29 @@ { "version": 2, "language": "node", - "generatedAt": "2026-06-01T17:59:24.986Z", + "generatedAt": "2026-06-17T01:23:51.028Z", "files": [ + "src/admin-portal/admin-portal.spec.ts", + "src/admin-portal/admin-portal.ts", + "src/admin-portal/fixtures/domain-verification-intent-options.json", + "src/admin-portal/fixtures/generate-link.json", + "src/admin-portal/fixtures/intent-options.json", + "src/admin-portal/fixtures/portal-link-response.json", + "src/admin-portal/fixtures/sso-intent-options.json", + "src/admin-portal/interfaces/domain-verification-intent-options.interface.ts", + "src/admin-portal/interfaces/generate-link-intent.interface.ts", + "src/admin-portal/interfaces/generate-link.interface.ts", + "src/admin-portal/interfaces/index.ts", + "src/admin-portal/interfaces/intent-options.interface.ts", + "src/admin-portal/interfaces/portal-link-response.interface.ts", + "src/admin-portal/interfaces/sso-intent-options.interface.ts", + "src/admin-portal/serializers.spec.ts", + "src/admin-portal/serializers/domain-verification-intent-options.serializer.ts", + "src/admin-portal/serializers/generate-link.serializer.ts", + "src/admin-portal/serializers/index.ts", + "src/admin-portal/serializers/intent-options.serializer.ts", + "src/admin-portal/serializers/portal-link-response.serializer.ts", + "src/admin-portal/serializers/sso-intent-options.serializer.ts", "src/api-keys/interfaces/create-validation-options.interface.ts", "src/api-keys/interfaces/delete-api-key-options.interface.ts", "src/connect/connect.spec.ts", diff --git a/src/admin-portal/admin-portal.spec.ts b/src/admin-portal/admin-portal.spec.ts index ece354dac..6fc4d2ffb 100644 --- a/src/admin-portal/admin-portal.spec.ts +++ b/src/admin-portal/admin-portal.spec.ts @@ -1,9 +1,15 @@ +// This file is auto-generated by oagen. Do not edit. + import fetch from 'jest-fetch-mock'; -import { fetchBody, fetchOnce } from '../common/utils/test-utils'; +import { + fetchOnce, + fetchURL, + fetchMethod, + fetchBody, +} from '../common/utils/test-utils'; import { WorkOS } from '../workos'; -import generateLinkInvalid from './fixtures/generate-link-invalid.json'; -import portalLinkResponse from './fixtures/portal-link-response.json'; -import { GenerateLinkIntent } from '../common/interfaces'; + +import portalLinkResponseFixture from './fixtures/portal-link-response.json'; const workos = new WorkOS('sk_test_Sz3IQjepeSWaI4cMS4ms4sMuU'); @@ -11,234 +17,23 @@ describe('AdminPortal', () => { beforeEach(() => fetch.resetMocks()); describe('generateLink', () => { - describe('with a valid organization', () => { - describe('with the sso intent', () => { - it('returns an Admin Portal link', async () => { - fetchOnce(portalLinkResponse, { status: 201 }); - - const { link } = await workos.adminPortal.generateLink({ - intent: GenerateLinkIntent.SSO, - organization: 'org_01EHQMYV6MBK39QC5PZXHY59C3', - returnUrl: 'https://www.example.com', - }); - - expect(fetchBody()).toEqual({ - intent: GenerateLinkIntent.SSO, - organization: 'org_01EHQMYV6MBK39QC5PZXHY59C3', - return_url: 'https://www.example.com', - }); - expect(link).toEqual( - 'https://setup.workos.com?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...', - ); - }); - }); - - describe('with the domain_verification intent', () => { - it('returns an Admin Portal link', async () => { - fetchOnce(portalLinkResponse, { status: 201 }); - - const { link } = await workos.adminPortal.generateLink({ - intent: GenerateLinkIntent.DomainVerification, - organization: 'org_01EHQMYV6MBK39QC5PZXHY59C3', - returnUrl: 'https://www.example.com', - }); - - expect(fetchBody()).toEqual({ - intent: GenerateLinkIntent.DomainVerification, - organization: 'org_01EHQMYV6MBK39QC5PZXHY59C3', - return_url: 'https://www.example.com', - }); - expect(link).toEqual( - 'https://setup.workos.com?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...', - ); - }); - }); - - describe('with the dsync intent', () => { - it('returns an Admin Portal link', async () => { - fetchOnce(portalLinkResponse, { status: 201 }); - - const { link } = await workos.adminPortal.generateLink({ - intent: GenerateLinkIntent.DSync, - organization: 'org_01EHQMYV6MBK39QC5PZXHY59C3', - returnUrl: 'https://www.example.com', - }); - - expect(fetchBody()).toEqual({ - intent: GenerateLinkIntent.DSync, - organization: 'org_01EHQMYV6MBK39QC5PZXHY59C3', - return_url: 'https://www.example.com', - }); - expect(link).toEqual( - 'https://setup.workos.com?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...', - ); - }); - }); - - describe('with the `audit_logs` intent', () => { - it('returns an Admin Portal link', async () => { - fetchOnce(portalLinkResponse, { status: 201 }); - - const { link } = await workos.adminPortal.generateLink({ - intent: GenerateLinkIntent.AuditLogs, - organization: 'org_01EHQMYV6MBK39QC5PZXHY59C3', - returnUrl: 'https://www.example.com', - }); - - expect(fetchBody()).toEqual({ - intent: GenerateLinkIntent.AuditLogs, - organization: 'org_01EHQMYV6MBK39QC5PZXHY59C3', - return_url: 'https://www.example.com', - }); - expect(link).toEqual( - 'https://setup.workos.com?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...', - ); - }); - }); - - describe('with the `log_streams` intent', () => { - it('returns an Admin Portal link', async () => { - fetchOnce(portalLinkResponse, { status: 201 }); - - const { link } = await workos.adminPortal.generateLink({ - intent: GenerateLinkIntent.LogStreams, - organization: 'org_01EHQMYV6MBK39QC5PZXHY59C3', - returnUrl: 'https://www.example.com', - }); - - expect(fetchBody()).toEqual({ - intent: GenerateLinkIntent.LogStreams, - organization: 'org_01EHQMYV6MBK39QC5PZXHY59C3', - return_url: 'https://www.example.com', - }); - expect(link).toEqual( - 'https://setup.workos.com?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...', - ); - }); - }); - describe('with the `certificate_renewal` intent', () => { - it('returns an Admin Portal link', async () => { - fetchOnce(portalLinkResponse, { status: 201 }); - - const { link } = await workos.adminPortal.generateLink({ - intent: GenerateLinkIntent.CertificateRenewal, - organization: 'org_01EHQMYV6MBK39QC5PZXHY59C3', - returnUrl: 'https://www.example.com', - }); - - expect(fetchBody()).toEqual({ - intent: GenerateLinkIntent.CertificateRenewal, - organization: 'org_01EHQMYV6MBK39QC5PZXHY59C3', - return_url: 'https://www.example.com', - }); - expect(link).toEqual( - 'https://setup.workos.com?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...', - ); - }); - }); - describe('with the `bring_your_own_key` intent', () => { - it('returns an Admin Portal link', async () => { - fetchOnce(portalLinkResponse, { status: 201 }); - - const { link } = await workos.adminPortal.generateLink({ - intent: GenerateLinkIntent.BringYourOwnKey, - organization: 'org_01EHQMYV6MBK39QC5PZXHY59C3', - returnUrl: 'https://www.example.com', - }); - - expect(fetchBody()).toEqual({ - intent: GenerateLinkIntent.BringYourOwnKey, - organization: 'org_01EHQMYV6MBK39QC5PZXHY59C3', - return_url: 'https://www.example.com', - }); - expect(link).toEqual( - 'https://setup.workos.com?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...', - ); - }); - }); - - describe('with intentOptions and adminEmails', () => { - it('serializes the new parameters correctly', async () => { - fetchOnce(portalLinkResponse, { status: 201 }); - - const { link } = await workos.adminPortal.generateLink({ - intent: GenerateLinkIntent.SSO, - organization: 'org_01EHQMYV6MBK39QC5PZXHY59C3', - returnUrl: 'https://www.example.com', - intentOptions: { - sso: { - bookmarkSlug: 'chatgpt', - providerType: 'GoogleSAML', - }, - }, - adminEmails: ['admin@example.com'], - }); - - expect(fetchBody()).toEqual({ - intent: 'sso', - organization: 'org_01EHQMYV6MBK39QC5PZXHY59C3', - return_url: 'https://www.example.com', - intent_options: { - sso: { - bookmark_slug: 'chatgpt', - provider_type: 'GoogleSAML', - }, - }, - admin_emails: ['admin@example.com'], - }); - expect(link).toEqual( - 'https://setup.workos.com?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...', - ); - }); - }); - }); - - describe('with an invalid organization', () => { - it('throws an error', async () => { - fetchOnce(generateLinkInvalid, { - status: 400, - headers: { 'X-Request-ID': 'a-request-id' }, - }); - - await expect( - workos.adminPortal.generateLink({ - intent: GenerateLinkIntent.SSO, - organization: 'bogus-id', - returnUrl: 'https://www.example.com', - }), - ).rejects.toThrow( - 'Could not find an organization with the id, bogus-id.', - ); - expect(fetchBody()).toEqual({ - intent: GenerateLinkIntent.SSO, - organization: 'bogus-id', - return_url: 'https://www.example.com', - }); - }); - }); - - describe('with an invalid organization', () => { - it('throws an error', async () => { - fetchOnce(generateLinkInvalid, { - status: 400, - headers: { 'X-Request-ID': 'a-request-id' }, - }); - - await expect( - workos.adminPortal.generateLink({ - intent: GenerateLinkIntent.SSO, - organization: 'bogus-id', - returnUrl: 'https://www.example.com', - }), - ).rejects.toThrow( - 'Could not find an organization with the id, bogus-id.', - ); - expect(fetchBody()).toEqual({ - intent: GenerateLinkIntent.SSO, - organization: 'bogus-id', - return_url: 'https://www.example.com', - }); - }); + it('sends the correct request and returns result', async () => { + fetchOnce(portalLinkResponseFixture); + + const result = await workos.adminPortal.generateLink({ + organization: 'test_organization', + }); + + expect(fetchMethod()).toBe('POST'); + expect(new URL(String(fetchURL())).pathname).toBe( + '/portal/generate_link', + ); + expect(fetchBody()).toEqual( + expect.objectContaining({ organization: 'test_organization' }), + ); + expect(result.link).toBe( + 'https://setup.workos.com?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...', + ); }); }); }); diff --git a/src/admin-portal/admin-portal.ts b/src/admin-portal/admin-portal.ts index 3623ba317..62d327fd5 100644 --- a/src/admin-portal/admin-portal.ts +++ b/src/admin-portal/admin-portal.ts @@ -1,7 +1,14 @@ // This file is auto-generated by oagen. Do not edit. -import { WorkOS } from '../workos'; -import { GenerateLinkIntent } from '../common/interfaces'; +import type { WorkOS } from '../workos'; +import type { GenerateLink } from './interfaces/generate-link.interface'; +import type { + PortalLinkResponse, + PortalLinkResponseWire, +} from './interfaces/portal-link-response.interface'; +import type { GenerateLinkResponse } from './interfaces/generate-link.interface'; +import { deserializePortalLinkResponse } from './serializers/portal-link-response.serializer'; +import { serializeGenerateLink } from './serializers/generate-link.serializer'; export class AdminPortal { constructor(private readonly workos: WorkOS) {} @@ -10,49 +17,38 @@ export class AdminPortal { * Generate a Portal Link * * Generate a Portal Link scoped to an Organization. - * @param payload - Object containing organization. - * @returns {Promise<{ link: string; }>} + * @param options - Object containing organization. + * @param options.returnUrl - The URL to go to when an admin clicks on your logo in the Admin Portal. If not specified, the return URL configured on the [Redirects](https://dashboard.workos.com/redirects) page will be used. + * @example "https://example.com/admin-portal/return" + * @param options.successUrl - The URL to redirect the admin to when they finish setup. If not specified, the success URL configured on the [Redirects](https://dashboard.workos.com/redirects) page will be used. + * @example "https://example.com/admin-portal/success" + * @param options.organization - An [Organization](https://workos.com/docs/reference/organization) identifier. + * @example "org_01EHZNVPK3SFK441A1RGBFSHRT" + * @param options.intent - + * The intent of the Admin Portal. + * - `sso` - Launch Admin Portal for creating SSO connections + * - `dsync` - Launch Admin Portal for creating Directory Sync connections + * - `audit_logs` - Launch Admin Portal for viewing Audit Logs + * - `log_streams` - Launch Admin Portal for creating Log Streams + * - `domain_verification` - Launch Admin Portal for Domain Verification + * - `certificate_renewal` - Launch Admin Portal for renewing SAML Certificates + * - `bring_your_own_key` - Launch Admin Portal for configuring Bring Your Own Key + * @example "sso" + * @param options.intentOptions - Options to configure the Admin Portal based on the intent. + * @param options.itContactEmails - The email addresses of the IT contacts to grant access to the Admin Portal for the given organization. Accepts up to 20 emails. + * @example ["it-contact@example.com"] + * @returns {Promise} * @throws {BadRequestException} 400 - * @throws 403 response from the API. + * @throws {AuthorizationException} 403 * @throws {NotFoundException} 404 * @throws {UnprocessableEntityException} 422 */ - async generateLink({ - intent, - organization, - returnUrl, - successUrl, - intentOptions, - adminEmails, - }: { - intent?: GenerateLinkIntent; - organization: string; - returnUrl?: string; - successUrl?: string; - intentOptions?: { - sso: { - bookmarkSlug?: string; - providerType?: string; - }; - }; - adminEmails?: string[]; - }): Promise<{ link: string }> { - const { data } = await this.workos.post('/portal/generate_link', { - intent, - organization, - return_url: returnUrl, - success_url: successUrl, - intent_options: intentOptions - ? { - sso: { - bookmark_slug: intentOptions.sso.bookmarkSlug, - provider_type: intentOptions.sso.providerType, - }, - } - : undefined, - admin_emails: adminEmails, - }); - - return data; + async generateLink(options: GenerateLink): Promise { + const payload = options; + const { data } = await this.workos.post< + PortalLinkResponseWire, + GenerateLinkResponse + >('/portal/generate_link', serializeGenerateLink(payload)); + return deserializePortalLinkResponse(data); } } diff --git a/src/admin-portal/fixtures/domain-verification-intent-options.json b/src/admin-portal/fixtures/domain-verification-intent-options.json new file mode 100644 index 000000000..d132a78aa --- /dev/null +++ b/src/admin-portal/fixtures/domain-verification-intent-options.json @@ -0,0 +1,3 @@ +{ + "domain_name": "example.com" +} diff --git a/src/admin-portal/fixtures/generate-link.json b/src/admin-portal/fixtures/generate-link.json index 63bd14d7c..77f6c1607 100644 --- a/src/admin-portal/fixtures/generate-link.json +++ b/src/admin-portal/fixtures/generate-link.json @@ -7,7 +7,10 @@ "sso": { "bookmark_slug": "chatgpt", "provider_type": "GoogleSAML" + }, + "domain_verification": { + "domain_name": "example.com" } }, - "admin_emails": ["admin@example.com"] + "it_contact_emails": ["it-contact@example.com"] } diff --git a/src/admin-portal/fixtures/intent-options.json b/src/admin-portal/fixtures/intent-options.json index 31bad9130..894d59987 100644 --- a/src/admin-portal/fixtures/intent-options.json +++ b/src/admin-portal/fixtures/intent-options.json @@ -2,5 +2,8 @@ "sso": { "bookmark_slug": "chatgpt", "provider_type": "GoogleSAML" + }, + "domain_verification": { + "domain_name": "example.com" } } diff --git a/src/admin-portal/interfaces/domain-verification-intent-options.interface.ts b/src/admin-portal/interfaces/domain-verification-intent-options.interface.ts new file mode 100644 index 000000000..d57f7fb07 --- /dev/null +++ b/src/admin-portal/interfaces/domain-verification-intent-options.interface.ts @@ -0,0 +1,10 @@ +// This file is auto-generated by oagen. Do not edit. + +export interface DomainVerificationIntentOptions { + /** The domain name to verify. When provided, the domain verification flow will skip the domain entry form and go directly to the verification step. */ + domainName?: string; +} + +export interface DomainVerificationIntentOptionsResponse { + domain_name?: string; +} diff --git a/src/admin-portal/interfaces/generate-link-intent.interface.ts b/src/admin-portal/interfaces/generate-link-intent.interface.ts new file mode 100644 index 000000000..e2cbb9b68 --- /dev/null +++ b/src/admin-portal/interfaces/generate-link-intent.interface.ts @@ -0,0 +1,14 @@ +// This file is auto-generated by oagen. Do not edit. + +export const GenerateLinkIntent = { + SSO: 'sso', + DSync: 'dsync', + AuditLogs: 'audit_logs', + LogStreams: 'log_streams', + DomainVerification: 'domain_verification', + CertificateRenewal: 'certificate_renewal', + BringYourOwnKey: 'bring_your_own_key', +} as const; + +export type GenerateLinkIntent = + (typeof GenerateLinkIntent)[keyof typeof GenerateLinkIntent]; diff --git a/src/admin-portal/interfaces/generate-link.interface.ts b/src/admin-portal/interfaces/generate-link.interface.ts index b76720bf4..2a9ce229b 100644 --- a/src/admin-portal/interfaces/generate-link.interface.ts +++ b/src/admin-portal/interfaces/generate-link.interface.ts @@ -27,8 +27,8 @@ export interface GenerateLink { intent?: GenerateLinkIntent; /** Options to configure the Admin Portal based on the intent. */ intentOptions?: IntentOptions; - /** The email addresses of the IT admins to grant access to the Admin Portal for the given organization. Accepts up to 20 emails. */ - adminEmails?: string[]; + /** The email addresses of the IT contacts to grant access to the Admin Portal for the given organization. Accepts up to 20 emails. */ + itContactEmails?: string[]; } export interface GenerateLinkResponse { @@ -37,5 +37,5 @@ export interface GenerateLinkResponse { organization: string; intent?: GenerateLinkIntent; intent_options?: IntentOptionsResponse; - admin_emails?: string[]; + it_contact_emails?: string[]; } diff --git a/src/admin-portal/interfaces/index.ts b/src/admin-portal/interfaces/index.ts index 790076022..ff7e61cac 100644 --- a/src/admin-portal/interfaces/index.ts +++ b/src/admin-portal/interfaces/index.ts @@ -1,3 +1,6 @@ +// This file is auto-generated by oagen. Do not edit. + +export * from './domain-verification-intent-options.interface'; export * from './generate-link.interface'; export * from './intent-options.interface'; export * from './portal-link-response.interface'; diff --git a/src/admin-portal/interfaces/intent-options.interface.ts b/src/admin-portal/interfaces/intent-options.interface.ts index 229e9e1af..1c2b7c407 100644 --- a/src/admin-portal/interfaces/intent-options.interface.ts +++ b/src/admin-portal/interfaces/intent-options.interface.ts @@ -4,12 +4,19 @@ import type { SSOIntentOptions, SSOIntentOptionsResponse, } from './sso-intent-options.interface'; +import type { + DomainVerificationIntentOptions, + DomainVerificationIntentOptionsResponse, +} from './domain-verification-intent-options.interface'; export interface IntentOptions { /** SSO-specific options for the Admin Portal. */ - sso: SSOIntentOptions; + sso?: SSOIntentOptions; + /** Domain verification-specific options for the Admin Portal. */ + domainVerification?: DomainVerificationIntentOptions; } export interface IntentOptionsResponse { - sso: SSOIntentOptionsResponse; + sso?: SSOIntentOptionsResponse; + domain_verification?: DomainVerificationIntentOptionsResponse; } diff --git a/src/admin-portal/serializers.spec.ts b/src/admin-portal/serializers.spec.ts index c884dbebe..84102c271 100644 --- a/src/admin-portal/serializers.spec.ts +++ b/src/admin-portal/serializers.spec.ts @@ -1,62 +1,58 @@ // This file is auto-generated by oagen. Do not edit. -import { - deserializeSSOIntentOptions, - serializeSSOIntentOptions, -} from './serializers/sso-intent-options.serializer'; -import { - deserializeIntentOptions, - serializeIntentOptions, -} from './serializers/intent-options.serializer'; -import { - deserializeGenerateLink, - serializeGenerateLink, -} from './serializers/generate-link.serializer'; -import { - deserializePortalLinkResponse, - serializePortalLinkResponse, -} from './serializers/portal-link-response.serializer'; +import { serializeSSOIntentOptions } from './serializers/sso-intent-options.serializer'; +import { serializeDomainVerificationIntentOptions } from './serializers/domain-verification-intent-options.serializer'; +import { serializeIntentOptions } from './serializers/intent-options.serializer'; +import { serializeGenerateLink } from './serializers/generate-link.serializer'; +import { deserializePortalLinkResponse } from './serializers/portal-link-response.serializer'; import type { SSOIntentOptionsResponse } from './interfaces/sso-intent-options.interface'; +import type { DomainVerificationIntentOptionsResponse } from './interfaces/domain-verification-intent-options.interface'; import type { IntentOptionsResponse } from './interfaces/intent-options.interface'; import type { GenerateLinkResponse } from './interfaces/generate-link.interface'; import type { PortalLinkResponseWire } from './interfaces/portal-link-response.interface'; import ssoIntentOptionsFixture from './fixtures/sso-intent-options.json'; +import domainVerificationIntentOptionsFixture from './fixtures/domain-verification-intent-options.json'; import intentOptionsFixture from './fixtures/intent-options.json'; import generateLinkFixture from './fixtures/generate-link.json'; import portalLinkResponseFixture from './fixtures/portal-link-response.json'; describe('SSOIntentOptionsSerializer', () => { - it('round-trips through serialize/deserialize', () => { + it('serializes correctly', () => { const fixture = ssoIntentOptionsFixture as SSOIntentOptionsResponse; - const deserialized = deserializeSSOIntentOptions(fixture); - const reserialized = serializeSSOIntentOptions(deserialized); - expect(reserialized).toEqual(expect.objectContaining(fixture)); + const serialized = serializeSSOIntentOptions(fixture as any); + expect(serialized).toBeDefined(); + }); +}); + +describe('DomainVerificationIntentOptionsSerializer', () => { + it('serializes correctly', () => { + const fixture = + domainVerificationIntentOptionsFixture as DomainVerificationIntentOptionsResponse; + const serialized = serializeDomainVerificationIntentOptions(fixture as any); + expect(serialized).toBeDefined(); }); }); describe('IntentOptionsSerializer', () => { - it('round-trips through serialize/deserialize', () => { + it('serializes correctly', () => { const fixture = intentOptionsFixture as IntentOptionsResponse; - const deserialized = deserializeIntentOptions(fixture); - const reserialized = serializeIntentOptions(deserialized); - expect(reserialized).toEqual(expect.objectContaining(fixture)); + const serialized = serializeIntentOptions(fixture as any); + expect(serialized).toBeDefined(); }); }); describe('GenerateLinkSerializer', () => { - it('round-trips through serialize/deserialize', () => { + it('serializes correctly', () => { const fixture = generateLinkFixture as GenerateLinkResponse; - const deserialized = deserializeGenerateLink(fixture); - const reserialized = serializeGenerateLink(deserialized); - expect(reserialized).toEqual(expect.objectContaining(fixture)); + const serialized = serializeGenerateLink(fixture as any); + expect(serialized).toBeDefined(); }); }); describe('PortalLinkResponseSerializer', () => { - it('round-trips through serialize/deserialize', () => { + it('deserializes correctly', () => { const fixture = portalLinkResponseFixture as PortalLinkResponseWire; const deserialized = deserializePortalLinkResponse(fixture); - const reserialized = serializePortalLinkResponse(deserialized); - expect(reserialized).toEqual(expect.objectContaining(fixture)); + expect(deserialized).toBeDefined(); }); }); diff --git a/src/admin-portal/serializers/domain-verification-intent-options.serializer.ts b/src/admin-portal/serializers/domain-verification-intent-options.serializer.ts new file mode 100644 index 000000000..7f6a54474 --- /dev/null +++ b/src/admin-portal/serializers/domain-verification-intent-options.serializer.ts @@ -0,0 +1,12 @@ +// This file is auto-generated by oagen. Do not edit. + +import type { + DomainVerificationIntentOptions, + DomainVerificationIntentOptionsResponse, +} from '../interfaces/domain-verification-intent-options.interface'; + +export const serializeDomainVerificationIntentOptions = ( + model: DomainVerificationIntentOptions, +): DomainVerificationIntentOptionsResponse => ({ + domain_name: model.domainName, +}); diff --git a/src/admin-portal/serializers/generate-link.serializer.ts b/src/admin-portal/serializers/generate-link.serializer.ts index c76688537..114be9095 100644 --- a/src/admin-portal/serializers/generate-link.serializer.ts +++ b/src/admin-portal/serializers/generate-link.serializer.ts @@ -4,24 +4,7 @@ import type { GenerateLink, GenerateLinkResponse, } from '../interfaces/generate-link.interface'; -import { - deserializeIntentOptions, - serializeIntentOptions, -} from './intent-options.serializer'; - -export const deserializeGenerateLink = ( - response: GenerateLinkResponse, -): GenerateLink => ({ - returnUrl: response.return_url, - successUrl: response.success_url, - organization: response.organization, - intent: response.intent, - intentOptions: - response.intent_options != null - ? deserializeIntentOptions(response.intent_options) - : undefined, - adminEmails: response.admin_emails, -}); +import { serializeIntentOptions } from './intent-options.serializer'; export const serializeGenerateLink = ( model: GenerateLink, @@ -34,5 +17,5 @@ export const serializeGenerateLink = ( model.intentOptions != null ? serializeIntentOptions(model.intentOptions) : undefined, - admin_emails: model.adminEmails, + it_contact_emails: model.itContactEmails, }); diff --git a/src/admin-portal/serializers/index.ts b/src/admin-portal/serializers/index.ts new file mode 100644 index 000000000..45f4e9ce0 --- /dev/null +++ b/src/admin-portal/serializers/index.ts @@ -0,0 +1,7 @@ +// This file is auto-generated by oagen. Do not edit. + +export * from './domain-verification-intent-options.serializer'; +export * from './generate-link.serializer'; +export * from './intent-options.serializer'; +export * from './portal-link-response.serializer'; +export * from './sso-intent-options.serializer'; diff --git a/src/admin-portal/serializers/intent-options.serializer.ts b/src/admin-portal/serializers/intent-options.serializer.ts index a7d16e1df..7abc7c3f2 100644 --- a/src/admin-portal/serializers/intent-options.serializer.ts +++ b/src/admin-portal/serializers/intent-options.serializer.ts @@ -4,19 +4,15 @@ import type { IntentOptions, IntentOptionsResponse, } from '../interfaces/intent-options.interface'; -import { - deserializeSSOIntentOptions, - serializeSSOIntentOptions, -} from './sso-intent-options.serializer'; - -export const deserializeIntentOptions = ( - response: IntentOptionsResponse, -): IntentOptions => ({ - sso: deserializeSSOIntentOptions(response.sso), -}); +import { serializeSSOIntentOptions } from './sso-intent-options.serializer'; +import { serializeDomainVerificationIntentOptions } from './domain-verification-intent-options.serializer'; export const serializeIntentOptions = ( model: IntentOptions, ): IntentOptionsResponse => ({ - sso: serializeSSOIntentOptions(model.sso), + sso: model.sso != null ? serializeSSOIntentOptions(model.sso) : undefined, + domain_verification: + model.domainVerification != null + ? serializeDomainVerificationIntentOptions(model.domainVerification) + : undefined, }); diff --git a/src/admin-portal/serializers/portal-link-response.serializer.ts b/src/admin-portal/serializers/portal-link-response.serializer.ts index 75a96c945..112b3e818 100644 --- a/src/admin-portal/serializers/portal-link-response.serializer.ts +++ b/src/admin-portal/serializers/portal-link-response.serializer.ts @@ -10,9 +10,3 @@ export const deserializePortalLinkResponse = ( ): PortalLinkResponse => ({ link: response.link, }); - -export const serializePortalLinkResponse = ( - model: PortalLinkResponse, -): PortalLinkResponseWire => ({ - link: model.link, -}); diff --git a/src/admin-portal/serializers/sso-intent-options.serializer.ts b/src/admin-portal/serializers/sso-intent-options.serializer.ts index 5c36252fa..23eec1e11 100644 --- a/src/admin-portal/serializers/sso-intent-options.serializer.ts +++ b/src/admin-portal/serializers/sso-intent-options.serializer.ts @@ -5,13 +5,6 @@ import type { SSOIntentOptionsResponse, } from '../interfaces/sso-intent-options.interface'; -export const deserializeSSOIntentOptions = ( - response: SSOIntentOptionsResponse, -): SSOIntentOptions => ({ - bookmarkSlug: response.bookmark_slug, - providerType: response.provider_type, -}); - export const serializeSSOIntentOptions = ( model: SSOIntentOptions, ): SSOIntentOptionsResponse => ({