Skip to content

Commit 93e783e

Browse files
authored
Merge pull request #63 from Fam-Story/fix/62-update-logic
Fix: update 로직 수정 (#62)
2 parents c9a5963 + cf40d53 commit 93e783e

12 files changed

+36
-26
lines changed

src/common/api/response-created.decorator.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export const CustomApiCreatedResponse = (
3232
ApiResponse({ status: 401, description: '인증되지 않은 요청입니다.' }),
3333
ApiResponse({ status: 403, description: '접근 권한이 없습니다.' }),
3434
ApiResponse({ status: 404, description: '리소스를 찾을 수 없습니다.' }),
35+
ApiResponse({ status: 409, description: '이미 존재하는 리소스입니다.' }),
3536
ApiResponse({ status: 500, description: '서버 내부 오류가 발생했습니다.' }),
3637
);
3738
};

src/common/api/response-ok.decorator.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ export const CustomApiOKResponse = (model: any, apiDescription: string) => {
2929
ApiResponse({ status: 401, description: '인증되지 않은 요청입니다.' }),
3030
ApiResponse({ status: 403, description: '접근 권한이 없습니다.' }),
3131
ApiResponse({ status: 404, description: '리소스를 찾을 수 없습니다.' }),
32+
ApiResponse({ status: 409, description: '이미 존재하는 리소스입니다.' }),
3233
ApiResponse({ status: 500, description: '서버 내부 오류가 발생했습니다.' }),
3334
);
3435
};

src/domain/family/family.service.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,11 @@ export class FamilyService {
7171

7272
//가족 정보 업데이트
7373
async updateFamily(updateFamilyDto: UpdateFamilyDto): Promise<void> {
74-
await this.validateFamily(updateFamilyDto.familyId);
75-
await this.familyRepository.save(updateFamilyDto);
74+
const family = await this.validateFamily(updateFamilyDto.familyId);
75+
await this.familyRepository.update(
76+
{ id: family.id },
77+
{ ...updateFamilyDto },
78+
);
7679
}
7780

7881
async validateFamily(familyId: number) {

src/domain/family_member/family-member.service.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,10 @@ export class FamilyMemberService {
5757
const familyMember = await this.validateFamilyMember(
5858
updateFamilyMemberDto.familyMemberId,
5959
);
60-
familyMember.role = updateFamilyMemberDto.role;
61-
await this.familyMemberRepository.save(familyMember);
60+
await this.familyMemberRepository.update(
61+
{ id: familyMember.id },
62+
{ ...updateFamilyMemberDto },
63+
);
6264
}
6365

6466
async deleteFamilyMember(familyMemberId: number) {

src/domain/family_schedule/family-schedule.service.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,10 @@ export class FamilyScheduleService {
4040
updateFamilyScheduleDto.familyScheduleId,
4141
);
4242
await this.validateFamily(updateFamilyScheduleDto.familyId);
43-
familySchedule.scheduleDate = new Date(
44-
updateFamilyScheduleDto.scheduleYear,
45-
updateFamilyScheduleDto.scheduleMonth - 1,
46-
updateFamilyScheduleDto.scheduleDay,
43+
await this.familyScheduleRepository.update(
44+
{ id: familySchedule.id },
45+
{ ...updateFamilyScheduleDto },
4746
);
48-
familySchedule.scheduleName = updateFamilyScheduleDto.scheduleName;
49-
await this.familyScheduleRepository.save(familySchedule);
5047
}
5148

5249
async deleteFamilySchedule(familyScheduleId: number) {

src/domain/post/post.service.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,8 @@ export class PostService {
3636
async updatePost(updatePostDto: UpdatePostDto) {
3737
const post = await this.validatePost(updatePostDto.postId);
3838
await this.validateFamilyMember(updatePostDto.srcMemberId);
39-
post.title = updatePostDto.title;
40-
post.context = updatePostDto.context;
4139

42-
await this.postRepository.save(post);
40+
await this.postRepository.update({ id: post.id }, { ...updatePostDto });
4341
}
4442

4543
async findPostListByFamilyId(familyId: number): Promise<ResponsePostDto[]> {

src/domain/user/user.service.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,11 @@ export class UserService {
3636
userId: number,
3737
updateUserDto: UpdateUserDto,
3838
): Promise<void> {
39-
await this.validateUser(userId);
40-
await this.userRepository.save(updateUserDto);
39+
const user = await this.validateUser(userId);
40+
if (updateUserDto.password !== undefined) {
41+
updateUserDto.password = await this.hashPassword(updateUserDto.password);
42+
}
43+
await this.userRepository.update({ id: user.id }, { ...updateUserDto });
4144
}
4245

4346
//이메일을 통한 중복 검사

src/test/service/family-member.service.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,13 +90,13 @@ describe('FamilyMemberService', () => {
9090
user.id = 1;
9191
familyMember.setId(1);
9292

93-
jest.spyOn(familyMemberRepository, 'save').mockResolvedValue(familyMember);
93+
jest.spyOn(familyMemberRepository, 'update').mockResolvedValue(familyMember);
9494
jest.spyOn(userRepository, 'findOne').mockResolvedValue(user);
9595
jest.spyOn(familyRepository, 'findOne').mockResolvedValue(family);
9696
jest.spyOn(familyMemberRepository, 'findOne').mockResolvedValue(family);
9797

9898
await familyMemberService.updateFamilyMember(updateFamilyMemberDto);
99-
expect(familyMemberRepository.save).toBeCalled();
99+
expect(familyMemberRepository.update).toBeCalled();
100100
});
101101

102102
it('should delete family-member', async () => {

src/test/service/family-schedule.service.spec.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ describe('FamilyScheduleService', () => {
99
findOne: jest.fn(),
1010
save: jest.fn(),
1111
delete: jest.fn(),
12+
update: jest.fn(),
1213
});
1314

1415
const family = Family.createFamily('testFamily', 'testKeyCode');
@@ -98,12 +99,12 @@ describe('FamilyScheduleService', () => {
9899
.spyOn(familyScheduleRepository, 'findOne')
99100
.mockResolvedValue(familySchedule);
100101
jest
101-
.spyOn(familyScheduleRepository, 'save')
102+
.spyOn(familyScheduleRepository, 'update')
102103
.mockResolvedValue(familySchedule);
103104

104105
await familyScheduleService.updateFamilySchedule(updateFamilyScheduleDto);
105106

106-
expect(familyScheduleRepository.save).toBeCalledTimes(1);
107+
expect(familyScheduleRepository.update).toBeCalledTimes(1);
107108
});
108109

109110
it('should delete family schedule', async () => {

src/test/service/family.service.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,12 +130,12 @@ describe('FamilyService', () => {
130130
familyName: 'testUpdated',
131131
};
132132
const family = Family.createFamily('test', familyKeyCode);
133-
jest.spyOn(familyRepository, 'save').mockResolvedValue(1);
133+
jest.spyOn(familyRepository, 'update').mockResolvedValue(1);
134134
jest.spyOn(familyRepository, 'findOne').mockResolvedValue(family);
135135

136136
await familyService.updateFamily(updateFamilyDto);
137137

138-
expect(familyRepository.save).toBeCalledTimes(1);
138+
expect(familyRepository.update).toBeCalledTimes(1);
139139
expect(familyRepository.findOne).toBeCalledTimes(1);
140140
});
141141
});

src/test/service/post.service.spec.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ describe('PostService', () => {
99
findOne: jest.fn(),
1010
save: jest.fn(),
1111
delete: jest.fn(),
12+
update: jest.fn(),
1213
});
1314

1415
let postService: PostService;
@@ -96,14 +97,14 @@ describe('PostService', () => {
9697
};
9798

9899
jest.spyOn(postRepository, 'findOne').mockResolvedValue(post);
99-
jest.spyOn(postRepository, 'save').mockResolvedValue(post);
100+
jest.spyOn(postRepository, 'update').mockResolvedValue(post);
100101
jest
101102
.spyOn(familyMemberRepository, 'findOne')
102103
.mockResolvedValue(familyMember);
103104

104105
await postService.updatePost(updatePostDto);
105106

106-
expect(postRepository.save).toHaveBeenCalled();
107+
expect(postRepository.update).toHaveBeenCalled();
107108
});
108109

109110
it('should delete post', async () => {

src/test/service/user.service.spec.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ describe('UserService', () => {
1313
findOne: jest.fn(),
1414
save: jest.fn(),
1515
delete: jest.fn(),
16+
update: jest.fn(),
1617
});
1718

1819
let userService: UserService;
@@ -65,7 +66,7 @@ describe('UserService', () => {
6566
});
6667

6768
describe('updateUser', () => {
68-
it('should update user', async () => {
69+
it('should update user and should crypt password', async () => {
6970
const user: User = User.createUser(
7071
7172
'test',
@@ -84,11 +85,13 @@ describe('UserService', () => {
8485
gender: 1,
8586
};
8687
jest.spyOn(userRepository, 'findOne').mockResolvedValue(user);
87-
jest.spyOn(userRepository, 'save').mockResolvedValue(1);
88+
jest.spyOn(userRepository, 'update').mockResolvedValue(1);
89+
jest.spyOn(userService, 'hashPassword').mockResolvedValue('@@#');
8890

8991
await userService.updateUser(1, updateUserDto);
9092
expect(userRepository.findOne).toHaveBeenCalled();
91-
expect(userRepository.save).toHaveBeenCalled();
93+
expect(userRepository.update).toHaveBeenCalled();
94+
expect(userService.hashPassword).toHaveBeenCalled();
9295
});
9396

9497
it('should delete user', async () => {

0 commit comments

Comments
 (0)