Browse Source

chore(api): track more fields for polar billing

pull/58/head
isra el 12 months ago
parent
commit
3d0ce469e9
  1. 3
      api/src/billing/billing.controller.ts
  2. 17
      api/src/billing/billing.service.ts
  3. 9
      api/src/billing/schemas/subscription.schema.ts

3
api/src/billing/billing.controller.ts

@ -65,6 +65,9 @@ export class BillingController {
status: payload.data?.status,
subscriptionStartDate: payload.data?.createdAt,
subscriptionEndDate: payload.data?.canceledAt,
amount: payload.data?.amount,
currency: payload.data?.currency,
recurringInterval: payload.data?.recurringInterval,
})
break

17
api/src/billing/billing.service.ts

@ -137,7 +137,7 @@ export class BillingService {
})
if (customPlanSubscription) {
return customPlanSubscription
return customPlanSubscription.populate('plan')
}
const proPlanSubscription = await this.subscriptionModel.findOne({
@ -147,7 +147,7 @@ export class BillingService {
})
if (proPlanSubscription) {
return proPlanSubscription
return proPlanSubscription.populate('plan')
}
const freePlanSubscription = await this.subscriptionModel.findOne({
@ -157,7 +157,7 @@ export class BillingService {
})
if (freePlanSubscription) {
return freePlanSubscription
return freePlanSubscription.populate('plan')
}
// create a new free plan subscription
@ -168,7 +168,7 @@ export class BillingService {
startDate: new Date(),
})
return newFreePlanSubscription
return newFreePlanSubscription.populate('plan')
}
async getUserLimits(userId: string) {
@ -205,6 +205,9 @@ export class BillingService {
subscriptionStartDate,
subscriptionEndDate,
status,
amount,
currency,
recurringInterval,
}: {
userId: string
newPlanName?: string
@ -215,6 +218,9 @@ export class BillingService {
subscriptionStartDate?: Date
subscriptionEndDate?: Date
status?: string
amount?: number
currency?: string
recurringInterval?: string
}) {
console.log(`Switching plan for user: ${userId}`)
@ -257,6 +263,9 @@ export class BillingService {
subscriptionStartDate,
subscriptionEndDate,
status,
amount,
currency,
recurringInterval,
},
{ upsert: true },
)

9
api/src/billing/schemas/subscription.schema.ts

@ -26,9 +26,18 @@ export class Subscription {
// @Prop()
// polarSubscriptionId?: string
@Prop({ type: String })
recurringInterval?: string
@Prop({ type: Date })
subscriptionStartDate?: Date
@Prop({ type: Number })
amount?: number
@Prop({ type: String })
currency?: string
@Prop({ type: Date })
subscriptionEndDate?: Date

Loading…
Cancel
Save