feat: integrate user usage into apis (#5075)

This commit is contained in:
DarkSky
2023-12-14 09:50:36 +00:00
parent 63de73a815
commit ad23ead5e4
36 changed files with 984 additions and 282 deletions
@@ -1,6 +1,6 @@
import { Module } from '@nestjs/common';
import { UsersModule } from '../users';
import { FeatureModule } from '../features';
import { SubscriptionResolver, UserSubscriptionResolver } from './resolver';
import { ScheduleManager } from './schedule';
import { SubscriptionService } from './service';
@@ -8,7 +8,7 @@ import { StripeProvider } from './stripe';
import { StripeWebhook } from './webhook';
@Module({
imports: [UsersModule],
imports: [FeatureModule],
providers: [
ScheduleManager,
StripeProvider,
@@ -11,7 +11,7 @@ import Stripe from 'stripe';
import { Config } from '../../config';
import { PrismaService } from '../../prisma';
import { UsersService } from '../users';
import { FeatureManagementService } from '../features';
import { ScheduleManager } from './schedule';
const OnEvent = (
@@ -82,8 +82,8 @@ export class SubscriptionService {
config: Config,
private readonly stripe: Stripe,
private readonly db: PrismaService,
private readonly user: UsersService,
private readonly scheduleManager: ScheduleManager
private readonly scheduleManager: ScheduleManager,
private readonly features: FeatureManagementService
) {
this.paymentConfig = config.payment;
@@ -658,7 +658,7 @@ export class SubscriptionService {
user: User,
couponType: CouponType
): Promise<string | null> {
const earlyAccess = await this.user.isEarlyAccessUser(user.email);
const earlyAccess = await this.features.canEarlyAccess(user.email);
if (earlyAccess) {
try {
const coupon = await this.stripe.coupons.retrieve(couponType);