Skip to content

Commit d9eb0dd

Browse files
committed
Use Plans and Features types from memex-common.
Prevents bugs with these getting out of sync
1 parent bf2ee79 commit d9eb0dd

File tree

5 files changed

+14
-34
lines changed

5 files changed

+14
-34
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "firebase/functions/src/external/memex-common"]
2+
path = firebase/functions/src/external/memex-common
3+
url = https://github.com/WorldBrain/memex-common.git
Submodule memex-common added at 552e67f

firebase/functions/src/subscriptions.ts

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {Claims, UserFeatures, UserPlans} from "./types";
1+
import {Claims, UserFeature, UserPlan} from './external/memex-common/ts/subscriptions/types'
22

33
export interface SusbcriptionQuery {
44
'customer_id[is]': string,
@@ -50,7 +50,7 @@ export const refreshUserSubscriptionStatus = async (userId: string, {getSubscrip
5050
// next_billing_at will be present when a subscription is active or in trial, and will
5151
// indicate up till when we can trust the the user is subscribed.
5252
const expiry = entry.subscription['current_term_end'] || entry.subscription['next_billing_at']
53-
const subPlanId = entry.subscription.plan_id
53+
const subPlanId = entry.subscription.plan_id as UserPlan
5454
// console.log(`Valid subscription for UserId:${userId}, planId:${subPlanId}, expiry:${expiry}`);
5555

5656
const existingSubscription = claims.subscriptions[subPlanId];
@@ -75,8 +75,8 @@ export const refreshUserSubscriptionStatus = async (userId: string, {getSubscrip
7575
const setFeaturesFromSubscriptions = (claims: Claims) => {
7676
// For each subscription, add the corresponding feature
7777
for (const subscriptionKey of Object.keys(claims.subscriptions)) {
78-
const subscription = claims.subscriptions[subscriptionKey]
79-
const subscriptionFeatures = subscriptionToFeatures.get(subscriptionKey as UserPlans)
78+
const subscription = claims.subscriptions[subscriptionKey as UserPlan]
79+
const subscriptionFeatures = subscriptionToFeatures.get(subscriptionKey as UserPlan)
8080
if (subscriptionFeatures != null && subscription != null) {
8181
for (const feature of subscriptionFeatures) {
8282
claims.features[feature] = {expiry: subscription.expiry}
@@ -85,15 +85,8 @@ const setFeaturesFromSubscriptions = (claims: Claims) => {
8585
}
8686
}
8787

88-
export const subscriptionToFeatures = new Map<UserPlans,UserFeatures[]>([
89-
["free", []],
90-
["pro-1-device", ['backup','sync']],
91-
["pro-2-devices", ['backup','sync']],
92-
["pro-3-devices", ['backup','sync']],
93-
["pro-4-devices", ['backup','sync']],
94-
["pro-1-device-yrl", ['backup','sync']],
95-
["pro-2-devices-yrl", ['backup','sync']],
96-
["pro-3-devices-yrl", ['backup','sync']],
97-
["pro-4-devices-yrl", ['backup','sync']],
88+
export const subscriptionToFeatures = new Map<UserPlan,UserFeature[]>([
89+
["pro-yearly", ['backup','sync']],
90+
["pro-monthly", ['backup','sync']],
9891
])
9992

firebase/functions/src/types.ts

Lines changed: 0 additions & 20 deletions
This file was deleted.

firebase/functions/tsconfig.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,8 @@
1111
"compileOnSave": true,
1212
"include": [
1313
"src"
14+
],
15+
"exclude": [
16+
"src/external/**/*"
1417
]
1518
}

0 commit comments

Comments
 (0)