UNPKG

orb-billing

Version:

The official TypeScript library for the Orb API

79 lines 3.02 kB
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { APIResource } from "../../core/resource.mjs"; import * as SubscriptionsAPI from "./subscriptions.mjs"; import { Subscriptions } from "./subscriptions.mjs"; import { Page } from "../../core/pagination.mjs"; import { path } from "../../internal/utils/path.mjs"; /** * A coupon represents a reusable discount configuration that can be applied either as a fixed or percentage amount to an invoice or subscription. Coupons are activated using a redemption code, which applies the discount to a subscription or invoice. The duration of a coupon determines how long it remains available for use by end users. */ export class Coupons extends APIResource { constructor() { super(...arguments); this.subscriptions = new SubscriptionsAPI.Subscriptions(this._client); } /** * This endpoint allows the creation of coupons, which can then be redeemed at * subscription creation or plan change. * * @example * ```ts * const coupon = await client.coupons.create({ * discount: { * discount_type: 'percentage', * percentage_discount: 0, * }, * redemption_code: 'HALFOFF', * }); * ``` */ create(body, options) { return this._client.post('/coupons', { body, ...options }); } /** * This endpoint returns a list of all coupons for an account in a list format. * * The list of coupons is ordered starting from the most recently created coupon. * The response also includes `pagination_metadata`, which lets the caller retrieve * the next page of results if they exist. * * @example * ```ts * // Automatically fetches more pages as needed. * for await (const coupon of client.coupons.list()) { * // ... * } * ``` */ list(query = {}, options) { return this._client.getAPIList('/coupons', (Page), { query, ...options }); } /** * This endpoint allows a coupon to be archived. Archived coupons can no longer be * redeemed, and will be hidden from lists of active coupons. Additionally, once a * coupon is archived, its redemption code can be reused for a different coupon. * * @example * ```ts * const coupon = await client.coupons.archive('coupon_id'); * ``` */ archive(couponID, options) { return this._client.post(path `/coupons/${couponID}/archive`, options); } /** * This endpoint retrieves a coupon by its ID. To fetch coupons by their redemption * code, use the [List coupons](list-coupons) endpoint with the redemption_code * parameter. * * @example * ```ts * const coupon = await client.coupons.fetch('coupon_id'); * ``` */ fetch(couponID, options) { return this._client.get(path `/coupons/${couponID}`, options); } } Coupons.Subscriptions = Subscriptions; //# sourceMappingURL=coupons.mjs.map