/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { PolarCore } from "../core.js"; import { WebhookBenefitCreatedPayload, webhookBenefitCreatedPayloadFromJSON, } from "../models/components/webhookbenefitcreatedpayload.js"; import { WebhookBenefitGrantCreatedPayload, webhookBenefitGrantCreatedPayloadFromJSON, } from "../models/components/webhookbenefitgrantcreatedpayload.js"; import { WebhookBenefitGrantCycledPayload, webhookBenefitGrantCycledPayloadFromJSON, } from "../models/components/webhookbenefitgrantcycledpayload.js"; import { WebhookBenefitGrantRevokedPayload, webhookBenefitGrantRevokedPayloadFromJSON, } from "../models/components/webhookbenefitgrantrevokedpayload.js"; import { WebhookBenefitGrantUpdatedPayload, webhookBenefitGrantUpdatedPayloadFromJSON, } from "../models/components/webhookbenefitgrantupdatedpayload.js"; import { WebhookBenefitUpdatedPayload, webhookBenefitUpdatedPayloadFromJSON, } from "../models/components/webhookbenefitupdatedpayload.js"; import { WebhookCheckoutCreatedPayload, webhookCheckoutCreatedPayloadFromJSON, } from "../models/components/webhookcheckoutcreatedpayload.js"; import { WebhookCheckoutExpiredPayload, webhookCheckoutExpiredPayloadFromJSON, } from "../models/components/webhookcheckoutexpiredpayload.js"; import { WebhookCheckoutUpdatedPayload, webhookCheckoutUpdatedPayloadFromJSON, } from "../models/components/webhookcheckoutupdatedpayload.js"; import { WebhookCustomerCreatedPayload, webhookCustomerCreatedPayloadFromJSON, } from "../models/components/webhookcustomercreatedpayload.js"; import { WebhookCustomerDeletedPayload, webhookCustomerDeletedPayloadFromJSON, } from "../models/components/webhookcustomerdeletedpayload.js"; import { WebhookCustomerSeatAssignedPayload, webhookCustomerSeatAssignedPayloadFromJSON, } from "../models/components/webhookcustomerseatassignedpayload.js"; import { WebhookCustomerSeatClaimedPayload, webhookCustomerSeatClaimedPayloadFromJSON, } from "../models/components/webhookcustomerseatclaimedpayload.js"; import { WebhookCustomerSeatRevokedPayload, webhookCustomerSeatRevokedPayloadFromJSON, } from "../models/components/webhookcustomerseatrevokedpayload.js"; import { WebhookCustomerStateChangedPayload, webhookCustomerStateChangedPayloadFromJSON, } from "../models/components/webhookcustomerstatechangedpayload.js"; import { WebhookCustomerUpdatedPayload, webhookCustomerUpdatedPayloadFromJSON, } from "../models/components/webhookcustomerupdatedpayload.js"; import { WebhookMemberCreatedPayload, webhookMemberCreatedPayloadFromJSON, } from "../models/components/webhookmembercreatedpayload.js"; import { WebhookMemberDeletedPayload, webhookMemberDeletedPayloadFromJSON, } from "../models/components/webhookmemberdeletedpayload.js"; import { WebhookMemberUpdatedPayload, webhookMemberUpdatedPayloadFromJSON, } from "../models/components/webhookmemberupdatedpayload.js"; import { WebhookOrderCreatedPayload, webhookOrderCreatedPayloadFromJSON, } from "../models/components/webhookordercreatedpayload.js"; import { WebhookOrderPaidPayload, webhookOrderPaidPayloadFromJSON, } from "../models/components/webhookorderpaidpayload.js"; import { WebhookOrderRefundedPayload, webhookOrderRefundedPayloadFromJSON, } from "../models/components/webhookorderrefundedpayload.js"; import { WebhookOrderUpdatedPayload, webhookOrderUpdatedPayloadFromJSON, } from "../models/components/webhookorderupdatedpayload.js"; import { WebhookOrganizationUpdatedPayload, webhookOrganizationUpdatedPayloadFromJSON, } from "../models/components/webhookorganizationupdatedpayload.js"; import { WebhookProductCreatedPayload, webhookProductCreatedPayloadFromJSON, } from "../models/components/webhookproductcreatedpayload.js"; import { WebhookProductUpdatedPayload, webhookProductUpdatedPayloadFromJSON, } from "../models/components/webhookproductupdatedpayload.js"; import { WebhookRefundCreatedPayload, webhookRefundCreatedPayloadFromJSON, } from "../models/components/webhookrefundcreatedpayload.js"; import { WebhookRefundUpdatedPayload, webhookRefundUpdatedPayloadFromJSON, } from "../models/components/webhookrefundupdatedpayload.js"; import { WebhookSubscriptionActivePayload, webhookSubscriptionActivePayloadFromJSON, } from "../models/components/webhooksubscriptionactivepayload.js"; import { WebhookSubscriptionCanceledPayload, webhookSubscriptionCanceledPayloadFromJSON, } from "../models/components/webhooksubscriptioncanceledpayload.js"; import { WebhookSubscriptionCreatedPayload, webhookSubscriptionCreatedPayloadFromJSON, } from "../models/components/webhooksubscriptioncreatedpayload.js"; import { WebhookSubscriptionPastDuePayload, webhookSubscriptionPastDuePayloadFromJSON, } from "../models/components/webhooksubscriptionpastduepayload.js"; import { WebhookSubscriptionRevokedPayload, webhookSubscriptionRevokedPayloadFromJSON, } from "../models/components/webhooksubscriptionrevokedpayload.js"; import { WebhookSubscriptionUncanceledPayload, webhookSubscriptionUncanceledPayloadFromJSON, } from "../models/components/webhooksubscriptionuncanceledpayload.js"; import { WebhookSubscriptionUpdatedPayload, webhookSubscriptionUpdatedPayloadFromJSON, } from "../models/components/webhooksubscriptionupdatedpayload.js"; import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; import { ERR, Result } from "../types/fp.js"; export async function validateWebhook(_client: PolarCore, { request: rawRequest, }: { request: { body: BodyInit; method: string; url: string; headers: Record | Headers; } | Request; }): Promise< Result< | WebhookCheckoutCreatedPayload | WebhookCheckoutUpdatedPayload | WebhookCheckoutExpiredPayload | WebhookCustomerCreatedPayload | WebhookCustomerUpdatedPayload | WebhookCustomerDeletedPayload | WebhookCustomerStateChangedPayload | WebhookCustomerSeatAssignedPayload | WebhookCustomerSeatClaimedPayload | WebhookCustomerSeatRevokedPayload | WebhookMemberCreatedPayload | WebhookMemberUpdatedPayload | WebhookMemberDeletedPayload | WebhookOrderCreatedPayload | WebhookOrderUpdatedPayload | WebhookOrderPaidPayload | WebhookOrderRefundedPayload | WebhookSubscriptionCreatedPayload | WebhookSubscriptionUpdatedPayload | WebhookSubscriptionActivePayload | WebhookSubscriptionCanceledPayload | WebhookSubscriptionUncanceledPayload | WebhookSubscriptionRevokedPayload | WebhookSubscriptionPastDuePayload | WebhookRefundCreatedPayload | WebhookRefundUpdatedPayload | WebhookProductCreatedPayload | WebhookProductUpdatedPayload | WebhookOrganizationUpdatedPayload | WebhookBenefitCreatedPayload | WebhookBenefitUpdatedPayload | WebhookBenefitGrantCreatedPayload | WebhookBenefitGrantUpdatedPayload | WebhookBenefitGrantCycledPayload | WebhookBenefitGrantRevokedPayload, SDKValidationError > > { const request = normalizeRequest(rawRequest); const jsonString = await request.text(); const knownSchemas = [ webhookCheckoutCreatedPayloadFromJSON, webhookCheckoutUpdatedPayloadFromJSON, webhookCheckoutExpiredPayloadFromJSON, webhookCustomerCreatedPayloadFromJSON, webhookCustomerUpdatedPayloadFromJSON, webhookCustomerDeletedPayloadFromJSON, webhookCustomerStateChangedPayloadFromJSON, webhookCustomerSeatAssignedPayloadFromJSON, webhookCustomerSeatClaimedPayloadFromJSON, webhookCustomerSeatRevokedPayloadFromJSON, webhookMemberCreatedPayloadFromJSON, webhookMemberUpdatedPayloadFromJSON, webhookMemberDeletedPayloadFromJSON, webhookOrderCreatedPayloadFromJSON, webhookOrderUpdatedPayloadFromJSON, webhookOrderPaidPayloadFromJSON, webhookOrderRefundedPayloadFromJSON, webhookSubscriptionCreatedPayloadFromJSON, webhookSubscriptionUpdatedPayloadFromJSON, webhookSubscriptionActivePayloadFromJSON, webhookSubscriptionCanceledPayloadFromJSON, webhookSubscriptionUncanceledPayloadFromJSON, webhookSubscriptionRevokedPayloadFromJSON, webhookSubscriptionPastDuePayloadFromJSON, webhookRefundCreatedPayloadFromJSON, webhookRefundUpdatedPayloadFromJSON, webhookProductCreatedPayloadFromJSON, webhookProductUpdatedPayloadFromJSON, webhookOrganizationUpdatedPayloadFromJSON, webhookBenefitCreatedPayloadFromJSON, webhookBenefitUpdatedPayloadFromJSON, webhookBenefitGrantCreatedPayloadFromJSON, webhookBenefitGrantUpdatedPayloadFromJSON, webhookBenefitGrantCycledPayloadFromJSON, webhookBenefitGrantRevokedPayloadFromJSON, ]; for (const schema of knownSchemas) { const ret = schema(jsonString); if (ret.ok) { return ret; } } return ERR( new SDKValidationError( "No matching schema found for the given webhook payload", jsonString, jsonString, ), ); } function normalizeRequest( request: { body: BodyInit; method: string; url: string; headers: Record | Headers; } | Request, ): Request { if (request instanceof Request) { return request; } return new Request(request.url, request); }