From cc0959752640ca75ccb0a9a9e10128224c2c073b Mon Sep 17 00:00:00 2001 From: Ricardo Arturo Cabral Mejia Date: Mon, 3 Oct 2022 01:48:54 +0000 Subject: [PATCH] chore: inject settings into EventMessageHandler --- src/factories/message-handler-factory.ts | 4 ++-- src/handlers/event-message-handler.ts | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/factories/message-handler-factory.ts b/src/factories/message-handler-factory.ts index 15792dc..fd86b14 100644 --- a/src/factories/message-handler-factory.ts +++ b/src/factories/message-handler-factory.ts @@ -3,16 +3,16 @@ import { EventMessageHandler } from '../handlers/event-message-handler' import { eventStrategyFactory } from './event-strategy-factory' import { IEventRepository } from '../@types/repositories' import { IWebSocketAdapter } from '../@types/adapters' +import { Settings } from '../utils/settings' import { SubscribeMessageHandler } from '../handlers/subscribe-message-handler' import { UnsubscribeMessageHandler } from '../handlers/unsubscribe-message-handler' - export const messageHandlerFactory = ( eventRepository: IEventRepository, ) => ([message, adapter]: [IncomingMessage, IWebSocketAdapter]) => { switch (message[0]) { case MessageType.EVENT: - return new EventMessageHandler(adapter, eventStrategyFactory(eventRepository)) + return new EventMessageHandler(adapter, eventStrategyFactory(eventRepository), Settings) case MessageType.REQ: return new SubscribeMessageHandler(adapter, eventRepository) case MessageType.CLOSE: diff --git a/src/handlers/event-message-handler.ts b/src/handlers/event-message-handler.ts index 8283881..7825899 100644 --- a/src/handlers/event-message-handler.ts +++ b/src/handlers/event-message-handler.ts @@ -4,14 +4,15 @@ import { IEventStrategy, IMessageHandler } from '../@types/message-handlers' import { Event } from '../@types/event' import { Factory } from '../@types/base' import { IncomingEventMessage } from '../@types/messages' +import { ISettings } from '../@types/settings' import { IWebSocketAdapter } from '../@types/adapters' -import { Settings } from '../utils/settings' import { WebSocketAdapterEvent } from '../constants/adapter' export class EventMessageHandler implements IMessageHandler { public constructor( private readonly webSocket: IWebSocketAdapter, - private readonly strategyFactory: Factory>, [Event, IWebSocketAdapter]> + private readonly strategyFactory: Factory>, [Event, IWebSocketAdapter]>, + private readonly settings: ISettings ) { } public async handleMessage(message: IncomingEventMessage): Promise { @@ -55,7 +56,7 @@ export class EventMessageHandler implements IMessageHandler { private canAcceptEvent(event: Event): string | undefined { const now = Math.floor(Date.now()/1000) - const limits = Settings.limits.event + const limits = this.settings.limits.event if (limits.createdAt.maxPositiveDelta > 0) { if (event.created_at > now + limits.createdAt.maxPositiveDelta) { return `created_at is more than ${limits.createdAt.maxPositiveDelta} seconds in the future`