mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
feat: add subscriptions (#10486)
* feat: add subscriptions * docs: requested changes Co-authored-by: Almeida <github@almeidx.dev> --------- Co-authored-by: Almeida <github@almeidx.dev> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
This commit is contained in:
@@ -6,6 +6,9 @@ import {
|
|||||||
type RESTGetAPIEntitlementsQuery,
|
type RESTGetAPIEntitlementsQuery,
|
||||||
type RESTGetAPIEntitlementsResult,
|
type RESTGetAPIEntitlementsResult,
|
||||||
type RESTGetAPISKUsResult,
|
type RESTGetAPISKUsResult,
|
||||||
|
type RESTGetAPISKUSubscriptionResult,
|
||||||
|
type RESTGetAPISKUSubscriptionsQuery,
|
||||||
|
type RESTGetAPISKUSubscriptionsResult,
|
||||||
type RESTPostAPIEntitlementJSONBody,
|
type RESTPostAPIEntitlementJSONBody,
|
||||||
type RESTPostAPIEntitlementResult,
|
type RESTPostAPIEntitlementResult,
|
||||||
type Snowflake,
|
type Snowflake,
|
||||||
@@ -17,17 +20,55 @@ export class MonetizationAPI {
|
|||||||
/**
|
/**
|
||||||
* Fetches the SKUs for an application.
|
* Fetches the SKUs for an application.
|
||||||
*
|
*
|
||||||
* @see {@link https://discord.com/developers/docs/monetization/skus#list-skus}
|
* @see {@link https://discord.com/developers/docs/resources/sku#list-skus}
|
||||||
|
* @param applicationId - The application id to fetch SKUs for
|
||||||
* @param options - The options for fetching the SKUs.
|
* @param options - The options for fetching the SKUs.
|
||||||
*/
|
*/
|
||||||
public async getSKUs(applicationId: Snowflake, { signal }: Pick<RequestData, 'signal'> = {}) {
|
public async getSKUs(applicationId: Snowflake, { signal }: Pick<RequestData, 'signal'> = {}) {
|
||||||
return this.rest.get(Routes.skus(applicationId), { signal }) as Promise<RESTGetAPISKUsResult>;
|
return this.rest.get(Routes.skus(applicationId), { signal }) as Promise<RESTGetAPISKUsResult>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fetches subscriptions for an SKU.
|
||||||
|
*
|
||||||
|
* @see {@link https://discord.com/developers/docs/resources/subscription#list-sku-subscriptions}
|
||||||
|
* @param skuId - The SKU id to fetch subscriptions for
|
||||||
|
* @param query - The query options for fetching subscriptions
|
||||||
|
* @param options - The options for fetching subscriptions
|
||||||
|
*/
|
||||||
|
public async getSKUSubscriptions(
|
||||||
|
skuId: Snowflake,
|
||||||
|
query: RESTGetAPISKUSubscriptionsQuery,
|
||||||
|
{ signal }: Pick<RequestData, 'signal'> = {},
|
||||||
|
) {
|
||||||
|
return this.rest.get(Routes.skuSubscriptions(skuId), {
|
||||||
|
signal,
|
||||||
|
query: makeURLSearchParams(query),
|
||||||
|
}) as Promise<RESTGetAPISKUSubscriptionsResult>;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fetches a subscription for an SKU.
|
||||||
|
*
|
||||||
|
* @see {@link https://discord.com/developers/docs/resources/subscription#get-sku-subscription}
|
||||||
|
* @param skuId - The SKU id to fetch subscription for
|
||||||
|
* @param subscriptionId - The subscription id to fetch
|
||||||
|
* @param options - The options for fetching the subscription
|
||||||
|
*/
|
||||||
|
public async getSKUSubscription(
|
||||||
|
skuId: Snowflake,
|
||||||
|
subscriptionId: Snowflake,
|
||||||
|
{ signal }: Pick<RequestData, 'signal'> = {},
|
||||||
|
) {
|
||||||
|
return this.rest.get(Routes.skuSubscription(skuId, subscriptionId), {
|
||||||
|
signal,
|
||||||
|
}) as Promise<RESTGetAPISKUSubscriptionResult>;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fetches the entitlements for an application.
|
* Fetches the entitlements for an application.
|
||||||
*
|
*
|
||||||
* @see {@link https://discord.com/developers/docs/monetization/entitlements#list-entitlements}
|
* @see {@link https://discord.com/developers/docs/resources/entitlement#list-entitlements}
|
||||||
* @param applicationId - The application id to fetch entitlements for
|
* @param applicationId - The application id to fetch entitlements for
|
||||||
* @param query - The query options for fetching entitlements
|
* @param query - The query options for fetching entitlements
|
||||||
* @param options - The options for fetching entitlements
|
* @param options - The options for fetching entitlements
|
||||||
@@ -46,7 +87,7 @@ export class MonetizationAPI {
|
|||||||
/**
|
/**
|
||||||
* Creates a test entitlement for an application's SKU.
|
* Creates a test entitlement for an application's SKU.
|
||||||
*
|
*
|
||||||
* @see {@link https://discord.com/developers/docs/monetization/entitlements#create-test-entitlement}
|
* @see {@link https://discord.com/developers/docs/resources/entitlement#create-test-entitlement}
|
||||||
* @param applicationId - The application id to create the entitlement for
|
* @param applicationId - The application id to create the entitlement for
|
||||||
* @param body - The data for creating the entitlement
|
* @param body - The data for creating the entitlement
|
||||||
* @param options - The options for creating the entitlement
|
* @param options - The options for creating the entitlement
|
||||||
@@ -65,7 +106,7 @@ export class MonetizationAPI {
|
|||||||
/**
|
/**
|
||||||
* Deletes a test entitlement for an application's SKU.
|
* Deletes a test entitlement for an application's SKU.
|
||||||
*
|
*
|
||||||
* @see {@link https://discord.com/developers/docs/monetization/entitlements#delete-test-entitlement}
|
* @see {@link https://discord.com/developers/docs/resources/entitlement#delete-test-entitlement}
|
||||||
* @param applicationId - The application id to delete the entitlement for
|
* @param applicationId - The application id to delete the entitlement for
|
||||||
* @param entitlementId - The entitlement id to delete
|
* @param entitlementId - The entitlement id to delete
|
||||||
* @param options - The options for deleting the entitlement
|
* @param options - The options for deleting the entitlement
|
||||||
@@ -81,7 +122,7 @@ export class MonetizationAPI {
|
|||||||
/**
|
/**
|
||||||
* Marks a given entitlement for the user as consumed. Only available for One-Time Purchase consumable SKUs.
|
* Marks a given entitlement for the user as consumed. Only available for One-Time Purchase consumable SKUs.
|
||||||
*
|
*
|
||||||
* @see {@link https://discord.com/developers/docs/monetization/entitlements#consume-an-entitlement}
|
* @see {@link https://discord.com/developers/docs/resources/entitlement#consume-an-entitlement}
|
||||||
* @param applicationId - The application id to consume the entitlement for
|
* @param applicationId - The application id to consume the entitlement for
|
||||||
* @param entitlementId - The entitlement id to consume
|
* @param entitlementId - The entitlement id to consume
|
||||||
* @param options - The options for consuming the entitlement
|
* @param options - The options for consuming the entitlement
|
||||||
|
|||||||
@@ -63,6 +63,9 @@ import {
|
|||||||
type GatewayStageInstanceCreateDispatchData,
|
type GatewayStageInstanceCreateDispatchData,
|
||||||
type GatewayStageInstanceDeleteDispatchData,
|
type GatewayStageInstanceDeleteDispatchData,
|
||||||
type GatewayStageInstanceUpdateDispatchData,
|
type GatewayStageInstanceUpdateDispatchData,
|
||||||
|
type GatewaySubscriptionCreateDispatchData,
|
||||||
|
type GatewaySubscriptionDeleteDispatchData,
|
||||||
|
type GatewaySubscriptionUpdateDispatchData,
|
||||||
type GatewayThreadCreateDispatchData,
|
type GatewayThreadCreateDispatchData,
|
||||||
type GatewayThreadDeleteDispatchData,
|
type GatewayThreadDeleteDispatchData,
|
||||||
type GatewayThreadListSyncDispatchData,
|
type GatewayThreadListSyncDispatchData,
|
||||||
@@ -157,6 +160,9 @@ export interface MappedEvents {
|
|||||||
[GatewayDispatchEvents.StageInstanceCreate]: [ToEventProps<GatewayStageInstanceCreateDispatchData>];
|
[GatewayDispatchEvents.StageInstanceCreate]: [ToEventProps<GatewayStageInstanceCreateDispatchData>];
|
||||||
[GatewayDispatchEvents.StageInstanceDelete]: [ToEventProps<GatewayStageInstanceDeleteDispatchData>];
|
[GatewayDispatchEvents.StageInstanceDelete]: [ToEventProps<GatewayStageInstanceDeleteDispatchData>];
|
||||||
[GatewayDispatchEvents.StageInstanceUpdate]: [ToEventProps<GatewayStageInstanceUpdateDispatchData>];
|
[GatewayDispatchEvents.StageInstanceUpdate]: [ToEventProps<GatewayStageInstanceUpdateDispatchData>];
|
||||||
|
[GatewayDispatchEvents.SubscriptionCreate]: [ToEventProps<GatewaySubscriptionCreateDispatchData>];
|
||||||
|
[GatewayDispatchEvents.SubscriptionDelete]: [ToEventProps<GatewaySubscriptionDeleteDispatchData>];
|
||||||
|
[GatewayDispatchEvents.SubscriptionUpdate]: [ToEventProps<GatewaySubscriptionUpdateDispatchData>];
|
||||||
[GatewayDispatchEvents.ThreadCreate]: [ToEventProps<GatewayThreadCreateDispatchData>];
|
[GatewayDispatchEvents.ThreadCreate]: [ToEventProps<GatewayThreadCreateDispatchData>];
|
||||||
[GatewayDispatchEvents.ThreadDelete]: [ToEventProps<GatewayThreadDeleteDispatchData>];
|
[GatewayDispatchEvents.ThreadDelete]: [ToEventProps<GatewayThreadDeleteDispatchData>];
|
||||||
[GatewayDispatchEvents.ThreadListSync]: [ToEventProps<GatewayThreadListSyncDispatchData>];
|
[GatewayDispatchEvents.ThreadListSync]: [ToEventProps<GatewayThreadListSyncDispatchData>];
|
||||||
|
|||||||
Reference in New Issue
Block a user