@bebapps/rapyd-sdk
Version:
An un-official [Rapyd](https://rapyd.net) SDK for Node.js.
53 lines (46 loc) • 2.65 kB
text/typescript
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>();
}