فهرست منبع

fix(auth): remove transitioning upon sign out (#819)

Karol Sójko 1 سال پیش
والد
کامیت
330bff0124

+ 0 - 1
packages/auth/src/Bootstrap/Container.ts

@@ -983,7 +983,6 @@ export class ContainerConfigLoader {
           container.get(TYPES.Auth_GenerateRecoveryCodes),
           container.get(TYPES.Auth_Logger),
           container.get(TYPES.Auth_SessionService),
-          container.get(TYPES.Auth_TRANSITION_MODE_ENABLED),
         ),
       )
     container

+ 0 - 4
packages/auth/src/Controller/AuthController.spec.ts

@@ -27,7 +27,6 @@ describe('AuthController', () => {
   let doGenerateRecoveryCodes: GenerateRecoveryCodes
   let logger: Logger
   let sessionService: SessionServiceInterface
-  let transitionModeEnabled: boolean
 
   const createController = () =>
     new AuthController(
@@ -40,7 +39,6 @@ describe('AuthController', () => {
       doGenerateRecoveryCodes,
       logger,
       sessionService,
-      transitionModeEnabled,
     )
 
   beforeEach(() => {
@@ -66,8 +64,6 @@ describe('AuthController', () => {
 
     sessionService = {} as jest.Mocked<SessionServiceInterface>
     sessionService.deleteSessionByToken = jest.fn().mockReturnValue('1-2-3')
-
-    transitionModeEnabled = false
   })
 
   it('should register a user', async () => {

+ 0 - 9
packages/auth/src/Controller/AuthController.ts

@@ -37,7 +37,6 @@ export class AuthController implements UserServerInterface {
     private doGenerateRecoveryCodes: GenerateRecoveryCodes,
     private logger: Logger,
     private sessionService: SessionServiceInterface,
-    private transitionModeEnabled: boolean,
   ) {}
 
   async update(_params: UserUpdateRequestParams): Promise<HttpResponse<UserUpdateResponse>> {
@@ -227,14 +226,6 @@ export class AuthController implements UserServerInterface {
     let headers = undefined
     if (userUuid !== null) {
       headers = new Map([['x-invalidate-cache', userUuid]])
-
-      if (this.transitionModeEnabled) {
-        await this.domainEventPublisher.publish(
-          this.domainEventFactory.createTransitionRequestedEvent({
-            userUuid,
-          }),
-        )
-      }
     }
 
     return {

+ 1 - 0
packages/revisions/src/Bootstrap/Container.ts

@@ -350,6 +350,7 @@ export class ContainerConfigLoader {
             : null,
           container.get<TimerInterface>(TYPES.Revisions_Timer),
           container.get<winston.Logger>(TYPES.Revisions_Logger),
+          env.get('MIGRATION_BATCH_SIZE', true) ? +env.get('MIGRATION_BATCH_SIZE', true) : 100,
         ),
       )
     container

+ 1 - 0
packages/revisions/src/Domain/UseCase/Transition/TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser/TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser.spec.ts

@@ -22,6 +22,7 @@ describe('TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser', () => {
       secondaryRevisionRepository,
       timer,
       logger,
+      1,
     )
 
   beforeEach(() => {

+ 7 - 8
packages/revisions/src/Domain/UseCase/Transition/TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser/TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser.ts

@@ -11,6 +11,7 @@ export class TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser implements
     private secondRevisionsRepository: RevisionRepositoryInterface | null,
     private timer: TimerInterface,
     private logger: Logger,
+    private pageSize: number,
   ) {}
 
   async execute(dto: TransitionRevisionsFromPrimaryToSecondaryDatabaseForUserDTO): Promise<Result<void>> {
@@ -83,13 +84,12 @@ export class TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser implements
     try {
       const totalRevisionsCountForUser = await this.primaryRevisionsRepository.countByUserUuid(userUuid)
       let totalRevisionsCountTransitionedToSecondary = 0
-      const pageSize = 1
-      const totalPages = Math.ceil(totalRevisionsCountForUser / pageSize)
+      const totalPages = Math.ceil(totalRevisionsCountForUser / this.pageSize)
       for (let currentPage = 1; currentPage <= totalPages; currentPage++) {
         const query = {
           userUuid: userUuid,
-          offset: (currentPage - 1) * pageSize,
-          limit: pageSize,
+          offset: (currentPage - 1) * this.pageSize,
+          limit: this.pageSize,
         }
 
         const revisions = await this.primaryRevisionsRepository.findByUserUuid(query)
@@ -153,13 +153,12 @@ export class TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser implements
     try {
       const totalRevisionsCountForUserInPrimary = await this.primaryRevisionsRepository.countByUserUuid(userUuid)
 
-      const pageSize = 1
-      const totalPages = Math.ceil(totalRevisionsCountForUserInPrimary / pageSize)
+      const totalPages = Math.ceil(totalRevisionsCountForUserInPrimary / this.pageSize)
       for (let currentPage = 1; currentPage <= totalPages; currentPage++) {
         const query = {
           userUuid: userUuid,
-          offset: (currentPage - 1) * pageSize,
-          limit: pageSize,
+          offset: (currentPage - 1) * this.pageSize,
+          limit: this.pageSize,
         }
 
         const revisions = await this.primaryRevisionsRepository.findByUserUuid(query)

+ 1 - 0
packages/syncing-server/src/Bootstrap/Container.ts

@@ -833,6 +833,7 @@ export class ContainerConfigLoader {
           isSecondaryDatabaseEnabled ? container.get<ItemRepositoryInterface>(TYPES.Sync_MongoDBItemRepository) : null,
           container.get<TimerInterface>(TYPES.Sync_Timer),
           container.get<Logger>(TYPES.Sync_Logger),
+          env.get('MIGRATION_BATCH_SIZE', true) ? +env.get('MIGRATION_BATCH_SIZE', true) : 100,
         ),
       )
     container

+ 1 - 0
packages/syncing-server/src/Domain/UseCase/Transition/TransitionItemsFromPrimaryToSecondaryDatabaseForUser/TransitionItemsFromPrimaryToSecondaryDatabaseForUser.spec.ts

@@ -22,6 +22,7 @@ describe('TransitionItemsFromPrimaryToSecondaryDatabaseForUser', () => {
       secondaryItemRepository,
       timer,
       logger,
+      1,
     )
 
   beforeEach(() => {

+ 9 - 12
packages/syncing-server/src/Domain/UseCase/Transition/TransitionItemsFromPrimaryToSecondaryDatabaseForUser/TransitionItemsFromPrimaryToSecondaryDatabaseForUser.ts

@@ -12,6 +12,7 @@ export class TransitionItemsFromPrimaryToSecondaryDatabaseForUser implements Use
     private secondaryItemRepository: ItemRepositoryInterface | null,
     private timer: TimerInterface,
     private logger: Logger,
+    private pageSize: number,
   ) {}
 
   async execute(dto: TransitionItemsFromPrimaryToSecondaryDatabaseForUserDTO): Promise<Result<void>> {
@@ -92,14 +93,12 @@ export class TransitionItemsFromPrimaryToSecondaryDatabaseForUser implements Use
   private async migrateItemsForUser(userUuid: Uuid): Promise<Result<void>> {
     try {
       const totalItemsCountForUser = await this.primaryItemRepository.countAll({ userUuid: userUuid.value })
-      const pageSize = 1
-      const totalPages = totalItemsCountForUser
-      let currentPage = 1
-      for (currentPage; currentPage <= totalPages; currentPage++) {
+      const totalPages = Math.ceil(totalItemsCountForUser / this.pageSize)
+      for (let currentPage = 1; currentPage <= totalPages; currentPage++) {
         const query: ItemQuery = {
           userUuid: userUuid.value,
-          offset: currentPage - 1,
-          limit: pageSize,
+          offset: (currentPage - 1) * this.pageSize,
+          limit: this.pageSize,
         }
 
         const items = await this.primaryItemRepository.findAll(query)
@@ -140,14 +139,12 @@ export class TransitionItemsFromPrimaryToSecondaryDatabaseForUser implements Use
         )
       }
 
-      const pageSize = 1
-      const totalPages = totalItemsCountForUserInPrimary
-      let currentPage = 1
-      for (currentPage; currentPage <= totalPages; currentPage++) {
+      const totalPages = Math.ceil(totalItemsCountForUserInPrimary / this.pageSize)
+      for (let currentPage = 1; currentPage <= totalPages; currentPage++) {
         const query: ItemQuery = {
           userUuid: userUuid.value,
-          offset: currentPage - 1,
-          limit: pageSize,
+          offset: (currentPage - 1) * this.pageSize,
+          limit: this.pageSize,
         }
 
         const items = await this.primaryItemRepository.findAll(query)