TransitionRequestedEventHandler.ts 1.0 KB

1234567891011121314151617181920212223242526
  1. import { DomainEventHandlerInterface, TransitionRequestedEvent } from '@standardnotes/domain-events'
  2. import { Logger } from 'winston'
  3. import { TransitionItemsFromPrimaryToSecondaryDatabaseForUser } from '../UseCase/Transition/TransitionItemsFromPrimaryToSecondaryDatabaseForUser/TransitionItemsFromPrimaryToSecondaryDatabaseForUser'
  4. export class TransitionRequestedEventHandler implements DomainEventHandlerInterface {
  5. constructor(
  6. private transitionItemsFromPrimaryToSecondaryDatabaseForUser: TransitionItemsFromPrimaryToSecondaryDatabaseForUser,
  7. private logger: Logger,
  8. ) {}
  9. async handle(event: TransitionRequestedEvent): Promise<void> {
  10. if (event.payload.type !== 'items') {
  11. return
  12. }
  13. const result = await this.transitionItemsFromPrimaryToSecondaryDatabaseForUser.execute({
  14. userUuid: event.payload.userUuid,
  15. timestamp: event.payload.timestamp,
  16. })
  17. if (result.isFailed()) {
  18. this.logger.error(`[${event.payload.userUuid}] Failed to trigger transition: ${result.getError()}`)
  19. }
  20. }
  21. }