Files
standardnotes-server/packages/websockets/src/Domain/Handler/WebSocketMessageRequestedEventHandler.ts
T
Karol SójkoandGitHub 69b404f5d4 feat: send event to client upon items change on server (#941)
* feat(websockets): persist connections in mysql

* fix: add sending event to client upon items changed on server

* fix payload

* fix: add cathcing errors

* fix: send changed items event only on a 10% dice roll
2023-11-28 09:31:42 +01:00

23 lines
866 B
TypeScript

import { DomainEventHandlerInterface, WebSocketMessageRequestedEvent } from '@standardnotes/domain-events'
import { Logger } from 'winston'
import { SendMessageToClient } from '../UseCase/SendMessageToClient/SendMessageToClient'
export class WebSocketMessageRequestedEventHandler implements DomainEventHandlerInterface {
constructor(
private sendMessageToClient: SendMessageToClient,
private logger: Logger,
) {}
async handle(event: WebSocketMessageRequestedEvent): Promise<void> {
const result = await this.sendMessageToClient.execute({
userUuid: event.payload.userUuid,
message: event.payload.message,
originatingSessionUuid: event.payload.originatingSessionUuid,
})
if (result.isFailed()) {
this.logger.error(`Could not send message to user ${event.payload.userUuid}. Error: ${result.getError()}`)
}
}
}