Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | 18x 18x 18x 18x 20x 1x 2x 2x 1x 1x 1x 2x 2x 2x 2x 2x | import { InjectRepository } from '@nestjs/typeorm';
import { SocialUser } from 'src/auth/interfaces/auth.interface';
import { UserEntity } from 'src/entities/user.entity';
import { ApiUserPutUpdateRequestBodyDto } from 'src/user/dto/api-user-put-update-request-body.dto';
import { UserDto } from 'src/user/dto/user.dto';
import { In, Repository, UpdateResult } from 'typeorm';
export class UserQueryRepository {
constructor(
@InjectRepository(UserEntity)
private repository: Repository<UserEntity>,
) {}
async findUser(user: SocialUser): Promise<UserEntity> {
return this.repository.findOne({
where: { email: user.email, type: user.type },
});
}
async createUser(user: SocialUser, uuid: string): Promise<UserEntity> {
const userData = {
...user,
photo: user.type === 'kakao' ? user.photo : null,
};
return this.repository.save({
uuid,
email: userData.email,
name: userData.nickname,
profile_image: userData.photo,
type: userData.type,
});
}
async save(userEntity: UserEntity): Promise<UserEntity> {
return this.repository.save(userEntity);
}
async findId(id: number): Promise<UserEntity> {
return this.repository.findOne({
where: { id },
});
}
async findOne(uuid: string): Promise<UserEntity> {
return this.repository.findOne({
where: { uuid },
});
}
async profileUpdate(dto: ApiUserPutUpdateRequestBodyDto, user: UserDto): Promise<UpdateResult> {
const updateFields: Partial<ApiUserPutUpdateRequestBodyDto> = {};
if (dto.name) updateFields.name = dto.name;
if (dto.profile_image) updateFields.profile_image = dto.profile_image;
return this.repository.update({ id: user.id }, updateFields);
}
async findUserList(uuids: string[]): Promise<UserEntity[]> {
return this.repository.find({
where: { uuid: In(uuids) },
});
}
}
|