From 2ca430f40ce6a8d56aafa27e9c2d0b0dd561c650 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20S=C3=B3jko?= Date: Tue, 6 Sep 2022 09:40:52 +0200 Subject: [PATCH] fix(auth): add debug logs for subscription canceling --- .../Handler/SubscriptionCancelledEventHandler.spec.ts | 6 ++++++ .../Domain/Handler/SubscriptionCancelledEventHandler.ts | 9 +++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/auth/src/Domain/Handler/SubscriptionCancelledEventHandler.spec.ts b/packages/auth/src/Domain/Handler/SubscriptionCancelledEventHandler.spec.ts index bf103b10d..6971044db 100644 --- a/packages/auth/src/Domain/Handler/SubscriptionCancelledEventHandler.spec.ts +++ b/packages/auth/src/Domain/Handler/SubscriptionCancelledEventHandler.spec.ts @@ -13,6 +13,7 @@ import { GetUserAnalyticsId } from '../UseCase/GetUserAnalyticsId/GetUserAnalyti import { UserRepositoryInterface } from '../User/UserRepositoryInterface' import { User } from '../User/User' import { UserSubscription } from '../Subscription/UserSubscription' +import { Logger } from 'winston' describe('SubscriptionCancelledEventHandler', () => { let userSubscriptionRepository: UserSubscriptionRepositoryInterface @@ -23,6 +24,7 @@ describe('SubscriptionCancelledEventHandler', () => { let analyticsStore: AnalyticsStoreInterface let statisticsStore: StatisticsStoreInterface let timestamp: number + let logger: Logger const createHandler = () => new SubscriptionCancelledEventHandler( @@ -32,6 +34,7 @@ describe('SubscriptionCancelledEventHandler', () => { getUserAnalyticsId, analyticsStore, statisticsStore, + logger, ) beforeEach(() => { @@ -72,6 +75,9 @@ describe('SubscriptionCancelledEventHandler', () => { offline: false, replaced: false, } + + logger = {} as jest.Mocked + logger.info = jest.fn() }) it('should update subscription cancelled', async () => { diff --git a/packages/auth/src/Domain/Handler/SubscriptionCancelledEventHandler.ts b/packages/auth/src/Domain/Handler/SubscriptionCancelledEventHandler.ts index f130dfb32..419286ba4 100644 --- a/packages/auth/src/Domain/Handler/SubscriptionCancelledEventHandler.ts +++ b/packages/auth/src/Domain/Handler/SubscriptionCancelledEventHandler.ts @@ -14,6 +14,7 @@ import { OfflineUserSubscriptionRepositoryInterface } from '../Subscription/Offl import { UserRepositoryInterface } from '../User/UserRepositoryInterface' import { GetUserAnalyticsId } from '../UseCase/GetUserAnalyticsId/GetUserAnalyticsId' import { UserSubscription } from '../Subscription/UserSubscription' +import { Logger } from 'winston' @injectable() export class SubscriptionCancelledEventHandler implements DomainEventHandlerInterface { @@ -25,6 +26,7 @@ export class SubscriptionCancelledEventHandler implements DomainEventHandlerInte @inject(TYPES.GetUserAnalyticsId) private getUserAnalyticsId: GetUserAnalyticsId, @inject(TYPES.AnalyticsStore) private analyticsStore: AnalyticsStoreInterface, @inject(TYPES.StatisticsStore) private statisticsStore: StatisticsStoreInterface, + @inject(TYPES.Logger) private logger: Logger, ) {} async handle(event: SubscriptionCancelledEvent): Promise { if (event.payload.offline) { @@ -46,8 +48,11 @@ export class SubscriptionCancelledEventHandler implements DomainEventHandlerInte const subscriptions = await this.userSubscriptionRepository.findBySubscriptionId(event.payload.subscriptionId) if (subscriptions.length !== 0) { - const lastSubscription = subscriptions.shift() - const subscriptionLength = event.payload.timestamp - (lastSubscription as UserSubscription).createdAt + const lastSubscription = subscriptions.shift() as UserSubscription + const subscriptionLength = event.payload.timestamp - lastSubscription.createdAt + this.logger.info( + `Canceling subscription ${lastSubscription.uuid} - lasted for ${subscriptionLength} microseconds`, + ) await this.statisticsStore.incrementMeasure(StatisticsMeasure.SubscriptionLength, subscriptionLength, [ Period.Today, Period.ThisWeek,