浏览代码

set hash after profile image change

Paul Paffe 2 年之前
父节点
当前提交
041a8ad1d1
共有 2 个文件被更改,包括 7 次插入7 次删除
  1. 4 5
      server/src/domain/user/user.core.ts
  2. 3 2
      server/src/domain/user/user.service.ts

+ 4 - 5
server/src/domain/user/user.core.ts

@@ -120,17 +120,16 @@ export class UserCore {
     if (!user.profileImageHash) {
     if (!user.profileImageHash) {
       throw new NotFoundException('User does not have a profile image');
       throw new NotFoundException('User does not have a profile image');
     }
     }
-    return user.profileImageHash; 
-
-
+    return user.profileImageHash;
+  }
 
 
   async getList(filter?: UserListFilter): Promise<UserEntity[]> {
   async getList(filter?: UserListFilter): Promise<UserEntity[]> {
     return this.userRepository.getList(filter);
     return this.userRepository.getList(filter);
   }
   }
 
 
-  async createProfileImage(authUser: AuthUserDto, filePath: string): Promise<UserEntity> {
+  async createProfileImage(authUser: AuthUserDto, filePath: string, hash: string): Promise<UserEntity> {
     try {
     try {
-      return this.userRepository.update(authUser.id, { profileImagePath: filePath });
+      return this.userRepository.update(authUser.id, { profileImagePath: filePath, profileImageHash: hash });
     } catch (e) {
     } catch (e) {
       Logger.error(e, 'Create User Profile Image');
       Logger.error(e, 'Create User Profile Image');
       throw new InternalServerErrorException('Failed to create new user profile image');
       throw new InternalServerErrorException('Failed to create new user profile image');

+ 3 - 2
server/src/domain/user/user.service.ts

@@ -1,6 +1,6 @@
 import { UserEntity } from '@app/infra/entities';
 import { UserEntity } from '@app/infra/entities';
 import { BadRequestException, Inject, Injectable, Logger, NotFoundException } from '@nestjs/common';
 import { BadRequestException, Inject, Injectable, Logger, NotFoundException } from '@nestjs/common';
-import { randomBytes } from 'crypto';
+import { createHash, randomBytes } from 'crypto';
 import { ReadStream } from 'fs';
 import { ReadStream } from 'fs';
 import { IAlbumRepository } from '../album/album.repository';
 import { IAlbumRepository } from '../album/album.repository';
 import { IAssetRepository } from '../asset/asset.repository';
 import { IAssetRepository } from '../asset/asset.repository';
@@ -108,7 +108,8 @@ export class UserService {
     authUser: AuthUserDto,
     authUser: AuthUserDto,
     fileInfo: Express.Multer.File,
     fileInfo: Express.Multer.File,
   ): Promise<CreateProfileImageResponseDto> {
   ): Promise<CreateProfileImageResponseDto> {
-    const updatedUser = await this.userCore.createProfileImage(authUser, fileInfo.path);
+    const hash = createHash('md5').update(fileInfo.buffer).digest('hex');
+    const updatedUser = await this.userCore.createProfileImage(authUser, fileInfo.path, hash);
     return mapCreateProfileImageResponse(updatedUser.id, updatedUser.profileImagePath);
     return mapCreateProfileImageResponse(updatedUser.id, updatedUser.profileImagePath);
   }
   }