transition.ts 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import 'reflect-metadata'
  2. import { Logger } from 'winston'
  3. import { ContainerConfigLoader } from '../src/Bootstrap/Container'
  4. import TYPES from '../src/Bootstrap/Types'
  5. import { Env } from '../src/Bootstrap/Env'
  6. import { TriggerTransitionFromPrimaryToSecondaryDatabaseForUser } from '../src/Domain/UseCase/Transition/TriggerTransitionFromPrimaryToSecondaryDatabaseForUser/TriggerTransitionFromPrimaryToSecondaryDatabaseForUser'
  7. import { TimerInterface } from '@standardnotes/time'
  8. const inputArgs = process.argv.slice(2)
  9. const userUuid = inputArgs[0]
  10. const requestTransition = async (
  11. triggerTransitionFromPrimaryToSecondaryDatabaseForUser: TriggerTransitionFromPrimaryToSecondaryDatabaseForUser,
  12. timer: TimerInterface,
  13. logger: Logger,
  14. ): Promise<void> => {
  15. const result = await triggerTransitionFromPrimaryToSecondaryDatabaseForUser.execute({
  16. userUuid,
  17. transitionTimestamp: timer.getTimestampInMicroseconds(),
  18. })
  19. if (result.isFailed()) {
  20. logger.error(`Could not trigger transition for user ${userUuid}: ${result.getError()}`)
  21. }
  22. return
  23. }
  24. const container = new ContainerConfigLoader('worker')
  25. void container.load().then((container) => {
  26. const env: Env = new Env()
  27. env.load()
  28. const logger: Logger = container.get(TYPES.Sync_Logger)
  29. logger.info(`Starting transitiong for user ${userUuid} ...`)
  30. const triggerTransitionFromPrimaryToSecondaryDatabaseForUser: TriggerTransitionFromPrimaryToSecondaryDatabaseForUser =
  31. container.get(TYPES.Sync_TriggerTransitionFromPrimaryToSecondaryDatabaseForUser)
  32. const timer = container.get<TimerInterface>(TYPES.Sync_Timer)
  33. Promise.resolve(requestTransition(triggerTransitionFromPrimaryToSecondaryDatabaseForUser, timer, logger))
  34. .then(() => {
  35. logger.info(`Transition triggered for user ${userUuid}`)
  36. process.exit(0)
  37. })
  38. .catch((error) => {
  39. logger.error(`Could not trigger transition for user ${userUuid}: ${error.message}`)
  40. process.exit(1)
  41. })
  42. })