TriggerTransitionFromPrimaryToSecondaryDatabaseForUser.ts 914 B

1234567891011121314151617181920
  1. import { Result, UseCaseInterface } from '@standardnotes/domain-core'
  2. import { DomainEventPublisherInterface } from '@standardnotes/domain-events'
  3. import { TriggerTransitionFromPrimaryToSecondaryDatabaseForUserDTO } from './TriggerTransitionFromPrimaryToSecondaryDatabaseForUserDTO'
  4. import { DomainEventFactoryInterface } from '../../../Event/DomainEventFactoryInterface'
  5. export class TriggerTransitionFromPrimaryToSecondaryDatabaseForUser implements UseCaseInterface<void> {
  6. constructor(
  7. private domainEventPubliser: DomainEventPublisherInterface,
  8. private domainEventFactory: DomainEventFactoryInterface,
  9. ) {}
  10. async execute(dto: TriggerTransitionFromPrimaryToSecondaryDatabaseForUserDTO): Promise<Result<void>> {
  11. const event = this.domainEventFactory.createTransitionStatusUpdatedEvent(dto.userUuid, 'STARTED')
  12. await this.domainEventPubliser.publish(event)
  13. return Result.ok()
  14. }
  15. }