/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { customerPortalCustomersAddPaymentMethod } from "../funcs/customerPortalCustomersAddPaymentMethod.js"; import { customerPortalCustomersCheckEmailUpdate } from "../funcs/customerPortalCustomersCheckEmailUpdate.js"; import { customerPortalCustomersConfirmPaymentMethod } from "../funcs/customerPortalCustomersConfirmPaymentMethod.js"; import { customerPortalCustomersDeletePaymentMethod } from "../funcs/customerPortalCustomersDeletePaymentMethod.js"; import { customerPortalCustomersGet } from "../funcs/customerPortalCustomersGet.js"; import { customerPortalCustomersListPaymentMethods } from "../funcs/customerPortalCustomersListPaymentMethods.js"; import { customerPortalCustomersRequestEmailUpdate } from "../funcs/customerPortalCustomersRequestEmailUpdate.js"; import { customerPortalCustomersUpdate } from "../funcs/customerPortalCustomersUpdate.js"; import { customerPortalCustomersVerifyEmailUpdate } from "../funcs/customerPortalCustomersVerifyEmailUpdate.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import { CustomerEmailUpdateRequest } from "../models/components/customeremailupdaterequest.js"; import { CustomerEmailUpdateVerifyRequest } from "../models/components/customeremailupdateverifyrequest.js"; import { CustomerEmailUpdateVerifyResponse } from "../models/components/customeremailupdateverifyresponse.js"; import { CustomerPaymentMethodConfirm } from "../models/components/customerpaymentmethodconfirm.js"; import { CustomerPaymentMethodCreate } from "../models/components/customerpaymentmethodcreate.js"; import { CustomerPaymentMethodCreateResponse } from "../models/components/customerpaymentmethodcreateresponse.js"; import { CustomerPortalCustomer } from "../models/components/customerportalcustomer.js"; import { CustomerPortalCustomerUpdate } from "../models/components/customerportalcustomerupdate.js"; import { CustomerPortalCustomersAddPaymentMethodSecurity } from "../models/operations/customerportalcustomersaddpaymentmethod.js"; import { CustomerPortalCustomersCheckEmailUpdateRequest } from "../models/operations/customerportalcustomerscheckemailupdate.js"; import { CustomerPortalCustomersConfirmPaymentMethodSecurity } from "../models/operations/customerportalcustomersconfirmpaymentmethod.js"; import { CustomerPortalCustomersDeletePaymentMethodRequest, CustomerPortalCustomersDeletePaymentMethodSecurity, } from "../models/operations/customerportalcustomersdeletepaymentmethod.js"; import { CustomerPortalCustomersGetSecurity } from "../models/operations/customerportalcustomersget.js"; import { CustomerPortalCustomersListPaymentMethodsRequest, CustomerPortalCustomersListPaymentMethodsResponse, CustomerPortalCustomersListPaymentMethodsSecurity, } from "../models/operations/customerportalcustomerslistpaymentmethods.js"; import { CustomerPortalCustomersRequestEmailUpdateSecurity } from "../models/operations/customerportalcustomersrequestemailupdate.js"; import { CustomerPortalCustomersUpdateSecurity } from "../models/operations/customerportalcustomersupdate.js"; import { unwrapAsync } from "../types/fp.js"; import { PageIterator, unwrapResultIterator } from "../types/operations.js"; export class PolarCustomers extends ClientSDK { /** * Get Customer * * @remarks * Get authenticated customer. * * **Scopes**: `customer_portal:read` `customer_portal:write` */ async get( security: CustomerPortalCustomersGetSecurity, options?: RequestOptions, ): Promise { return unwrapAsync(customerPortalCustomersGet( this, security, options, )); } /** * Update Customer * * @remarks * Update authenticated customer. */ async update( security: CustomerPortalCustomersUpdateSecurity, request: CustomerPortalCustomerUpdate, options?: RequestOptions, ): Promise { return unwrapAsync(customerPortalCustomersUpdate( this, security, request, options, )); } /** * List Customer Payment Methods * * @remarks * Get saved payment methods of the authenticated customer. */ async listPaymentMethods( security: CustomerPortalCustomersListPaymentMethodsSecurity, request: CustomerPortalCustomersListPaymentMethodsRequest, options?: RequestOptions, ): Promise< PageIterator< CustomerPortalCustomersListPaymentMethodsResponse, { page: number } > > { return unwrapResultIterator(customerPortalCustomersListPaymentMethods( this, security, request, options, )); } /** * Add Customer Payment Method * * @remarks * Add a payment method to the authenticated customer. */ async addPaymentMethod( security: CustomerPortalCustomersAddPaymentMethodSecurity, request: CustomerPaymentMethodCreate, options?: RequestOptions, ): Promise { return unwrapAsync(customerPortalCustomersAddPaymentMethod( this, security, request, options, )); } /** * Confirm Customer Payment Method * * @remarks * Confirm a payment method for the authenticated customer. */ async confirmPaymentMethod( security: CustomerPortalCustomersConfirmPaymentMethodSecurity, request: CustomerPaymentMethodConfirm, options?: RequestOptions, ): Promise { return unwrapAsync(customerPortalCustomersConfirmPaymentMethod( this, security, request, options, )); } /** * Delete Customer Payment Method * * @remarks * Delete a payment method from the authenticated customer. */ async deletePaymentMethod( security: CustomerPortalCustomersDeletePaymentMethodSecurity, request: CustomerPortalCustomersDeletePaymentMethodRequest, options?: RequestOptions, ): Promise { return unwrapAsync(customerPortalCustomersDeletePaymentMethod( this, security, request, options, )); } /** * Request Email Change * * @remarks * Request an email change for the authenticated customer. */ async requestEmailUpdate( security: CustomerPortalCustomersRequestEmailUpdateSecurity, request: CustomerEmailUpdateRequest, options?: RequestOptions, ): Promise { return unwrapAsync(customerPortalCustomersRequestEmailUpdate( this, security, request, options, )); } /** * Check Email Change Token * * @remarks * Check if an email change verification token is still valid. */ async checkEmailUpdate( request: CustomerPortalCustomersCheckEmailUpdateRequest, options?: RequestOptions, ): Promise { return unwrapAsync(customerPortalCustomersCheckEmailUpdate( this, request, options, )); } /** * Verify Email Change * * @remarks * Verify an email change using the token from the verification email. */ async verifyEmailUpdate( request: CustomerEmailUpdateVerifyRequest, options?: RequestOptions, ): Promise { return unwrapAsync(customerPortalCustomersVerifyEmailUpdate( this, request, options, )); } }