UNPKG

@bebapps/rapyd-sdk

Version:

An un-official [Rapyd](https://rapyd.net) SDK for Node.js.

53 lines (46 loc) 2.57 kB
import { RapydClient } from '../../../core/RapydClient'; import { Subscription } from '../types/Subscription'; import { PayoutSubscriptionError } from '../enums/PayoutSubscriptionError'; import { CreateSubscriptionRequest } from '../requests/CreateSubscriptionRequest'; import { UpdateSubscriptionRequest } from '../requests/UpdateSubscriptionRequest'; import { RetrieveSubscriptionRequest } from '../requests/RetrieveSubscriptionRequest'; import { ListSubscriptionsRequest } from '../requests/ListSubscriptionsRequest'; import { CancelSubscriptionRequest } from '../requests/CancelSubscriptionRequest'; export async function createSubscription<R = Subscription>(client: RapydClient, request: CreateSubscriptionRequest): Promise<R> { const response = await client.post('/v1/payouts/subscriptions/', { billing: request.billing, cancel_at_period_end: request.cancel_at_period_end, metadata: request.metadata, payout_fields: request.payout_fields, subscription_items: request.subscription_items, }); return await response.data<R, PayoutSubscriptionError>(); } export async function updateSubscription<R = Subscription>(client: RapydClient, request: UpdateSubscriptionRequest): Promise<R> { const response = await client.post('/v1/payouts/subscriptions/{}', request.subscription, { metadata: request.metadata, }); return await response.data<R, PayoutSubscriptionError>(); } export async function retrieveSubscription<R = Subscription>(client: RapydClient, request: RetrieveSubscriptionRequest): Promise<R> { const response = await client.get('/v1/payouts/subscriptions/{}', request.subscription); return await response.data<R, PayoutSubscriptionError>(); } export async function listSubscriptions<R = Subscription>(client: RapydClient, request: ListSubscriptionsRequest): Promise<R> { const queryParams = client.queryParams({ billing: request.billing, customer: request.customer, ending_before: request.ending_before, limit: request.limit, starting_after: request.starting_after, status: request.status, }); const response = await client.get('/v1/payouts/subscriptions' + queryParams); return await response.data<R, PayoutSubscriptionError>(); } export async function cancelSubscription<R = Subscription>(client: RapydClient, request: CancelSubscriptionRequest): Promise<R> { const response = await client.delete('/v1/payouts/subscriptions/{}', request.subscription, { cancel_at_period_end: request.cancel_at_period_end, }); return await response.data<R, PayoutSubscriptionError>(); }