From 5ac8c3d6536145a841dce8d77440f477ece9793d Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Mon, 28 Oct 2024 14:03:31 -0500 Subject: [PATCH] Add entitlements endpoint --- subs-mock/src/index.ts | 10 ++++++++-- subs-mock/src/util.ts | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/subs-mock/src/index.ts b/subs-mock/src/index.ts index 4c681c5a8a..9801d6ea07 100644 --- a/subs-mock/src/index.ts +++ b/subs-mock/src/index.ts @@ -6,6 +6,7 @@ import Stripe from 'stripe' import { getMainSubscriptionProducts, + normalizeEntitlements, RevenueCatProduct, RevenueCatSubscription, } from './util' @@ -156,9 +157,14 @@ export default new Hono<{Bindings: Bindings; Variables: Variables}>() const rc = c.get('rcv2') const user = c.req.query('user') - const {items} = await rc.get(`customers/${user}/subscriptions`).json() + const {items} = await rc + .get<{items: RevenueCatSubscription[]}>(`customers/${user}/subscriptions`) + .json() + const entitlements = normalizeEntitlements( + items.flatMap(sub => sub.entitlements.items), + ) - return c.json(items) + return c.json({entitlements}) }) /** diff --git a/subs-mock/src/util.ts b/subs-mock/src/util.ts index 8f5e43d6cd..c38a678d86 100644 --- a/subs-mock/src/util.ts +++ b/subs-mock/src/util.ts @@ -455,3 +455,36 @@ export function normalizeMainSubscriptionProduct({ } } } + +export enum EntitlementId { + Main0 = 'main:0', + Main1 = 'main:1', + Main2 = 'main:2', +} + +export function normalizeEntitlements( + entitlements: RevenueCatSubscription['entitlements']['items'], +) { + return entitlements.map(entitlement => { + let id = EntitlementId.Main0 + + switch (entitlement.lookup_key) { + case 'main:0': { + id = EntitlementId.Main0 + break + } + case 'main:1': { + id = EntitlementId.Main1 + break + } + case 'main:2': { + id = EntitlementId.Main2 + break + } + } + + return { + id, + } + }) +}