feat(bot,rest,types): Add support for one-time entitlements (#3626)

* Add support for one-time entitlements

* Add comment to consumeEntitlement route

Co-authored-by: LTS20050703 <lts20050703@gmail.com>

* Check for undefined instead of falsy values in consumed for entitlements

Co-authored-by: LTS20050703 <lts20050703@gmail.com>

---------

Co-authored-by: LTS20050703 <lts20050703@gmail.com>
Co-authored-by: Awesome Stickz <awesome@stickz.dev>
This commit is contained in:
Fleny
2024-05-26 18:38:48 +00:00
committed by GitHub
co-authored by LTS20050703 Awesome Stickz
parent 541dc3b0cf
commit 47d0cea664
7 changed files with 40 additions and 2 deletions
+2
View File
@@ -520,6 +520,7 @@ export interface Transformers {
deleted: boolean
startsAt: boolean
endsAt: boolean
consumed: boolean
}
sku: {
id: boolean
@@ -1127,6 +1128,7 @@ export function createTransformers(options: Partial<Transformers>, opts?: Create
deleted: opts?.defaultDesiredPropertiesValue ?? false,
startsAt: opts?.defaultDesiredPropertiesValue ?? false,
endsAt: opts?.defaultDesiredPropertiesValue ?? false,
consumed: opts?.defaultDesiredPropertiesValue ?? false,
},
sku: {
id: opts?.defaultDesiredPropertiesValue ?? false,
@@ -14,6 +14,7 @@ export function transformEntitlement(bot: Bot, payload: DiscordEntitlement): Ent
if (props.deleted && payload.deleted) entitlement.deleted = payload.deleted
if (props.startsAt && payload.starts_at) entitlement.startsAt = Date.parse(payload.starts_at)
if (props.endsAt && payload.ends_at) entitlement.endsAt = Date.parse(payload.ends_at)
if (props.consumed && payload.consumed !== undefined) entitlement.consumed = payload.consumed
return bot.transformers.customizers.entitlement(bot, payload, entitlement)
}
@@ -37,4 +38,6 @@ export interface Entitlement {
startsAt?: number
/** Date at which the entitlement is no longer valid. Not present when using test entitlements */
endsAt?: number
/** For consumable items, whether or not the entitlement has been consumed */
consumed?: boolean
}