UNPKG

@bebapps/rapyd-sdk

Version:

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

53 lines (46 loc) 2.65 kB
import { RapydClient } from '../../../core/RapydClient'; import { SubscriptionItem } from '../types/SubscriptionItem'; import { SubscriptionItemError } from '../enums/SubscriptionItemError'; import { CreateSubscriptionItemRequest } from '../requests/CreateSubscriptionItemRequest'; import { UpdateSubscriptionItemRequest } from '../requests/UpdateSubscriptionItemRequest'; import { RetrieveSubscriptionItemRequest } from '../requests/RetrieveSubscriptionItemRequest'; import { ListSubscriptionItemsRequest } from '../requests/ListSubscriptionItemsRequest'; import { DeleteSubscriptionItemRequest } from '../requests/DeleteSubscriptionItemRequest'; export async function createSubscriptionItem<R = SubscriptionItem>(client: RapydClient, request: CreateSubscriptionItemRequest): Promise<R> { const response = await client.post('/v1/subscription_items', { metadata: request.metadata, plan: request.plan, prorate: request.prorate, proration_date: request.proration_date, quantity: request.quantity, subscription: request.subscription, }); return await response.data<R, SubscriptionItemError>(); } export async function updateSubscriptionItem<R = SubscriptionItem>(client: RapydClient, request: UpdateSubscriptionItemRequest): Promise<R> { const response = await client.post('/v1/subscription_items/{}', request.subscription_item, { metadata: request.metadata, prorate: request.prorate, proration_date: request.proration_date, quantity: request.quantity, }); return await response.data<R, SubscriptionItemError>(); } export async function retrieveSubscriptionItem<R = SubscriptionItem>(client: RapydClient, request: RetrieveSubscriptionItemRequest): Promise<R> { const response = await client.get('/v1/subscription_items/{}', request.subscription_item); return await response.data<R, SubscriptionItemError>(); } export async function listSubscriptionItems<R = SubscriptionItem>(client: RapydClient, request: ListSubscriptionItemsRequest): Promise<R> { const queryParams = client.queryParams({ ending_before: request.ending_before, limit: request.limit, starting_after: request.starting_after, subscription: request.subscription, }); const response = await client.get('/v1/subscription_items' + queryParams); return await response.data<R, SubscriptionItemError>(); } export async function deleteSubscriptionItem<R = SubscriptionItem>(client: RapydClient, request: DeleteSubscriptionItemRequest): Promise<R> { const response = await client.delete('/v1/subscription_items/{}', request.subscription_item); return await response.data<R, SubscriptionItemError>(); }