Browse Source

fix(server): log user delete errors (#1255)

Jason Rasmussen 2 years ago
parent
commit
fd15cdbf40
1 changed files with 19 additions and 1 deletions
  1. 19 1
      server/apps/microservices/src/processors/user-deletion.processor.ts

+ 19 - 1
server/apps/microservices/src/processors/user-deletion.processor.ts

@@ -3,6 +3,7 @@ import { APIKeyEntity, AssetEntity, UserEntity } from '@app/database';
 import { QueueNameEnum, userDeletionProcessorName } from '@app/job';
 import { IUserDeletionJob } from '@app/job/interfaces/user-deletion.interface';
 import { Process, Processor } from '@nestjs/bull';
+import { Logger } from '@nestjs/common';
 import { InjectRepository } from '@nestjs/typeorm';
 import { Job } from 'bull';
 import { join } from 'path';
@@ -11,6 +12,8 @@ import { Repository } from 'typeorm';
 
 @Processor(QueueNameEnum.USER_DELETION)
 export class UserDeletionProcessor {
+  private logger = new Logger(UserDeletionProcessor.name);
+
   constructor(
     @InjectRepository(UserEntity)
     private userRepository: Repository<UserEntity>,
@@ -25,14 +28,29 @@ export class UserDeletionProcessor {
   @Process(userDeletionProcessorName)
   async processUserDeletion(job: Job<IUserDeletionJob>) {
     const { user } = job.data;
+
     // just for extra protection here
-    if (userUtils.isReadyForDeletion(user)) {
+    if (!userUtils.isReadyForDeletion(user)) {
+      this.logger.warn(`Skipped user that was not ready for deletion: id=${user.id}`);
+      return;
+    }
+
+    this.logger.log(`Deleting user: ${user.id}`);
+
+    try {
       const basePath = APP_UPLOAD_LOCATION;
       const userAssetDir = join(basePath, user.id);
+      this.logger.warn(`Removing user from filesystem: ${userAssetDir}`);
       fs.rmSync(userAssetDir, { recursive: true, force: true });
+
+      this.logger.warn(`Removing user from database: ${user.id}`);
       await this.apiKeyRepository.delete({ userId: user.id });
       await this.assetRepository.delete({ userId: user.id });
       await this.userRepository.remove(user);
+    } catch (error: any) {
+      this.logger.error(`Failed to remove user`);
+      this.logger.error(error, error?.stack);
+      throw error;
     }
   }
 }