@@ -85,27 +85,31 @@ export class PostLikeService {
85
85
throw DataNotFoundException ( '게시글을 찾을 수 없습니다.' ) ;
86
86
}
87
87
88
- const likeData = await this . postLikeRepository . find ( {
89
- where : { post : { id : postId } , status : 'activated' } ,
88
+ const likeData = await this . postLikeRepository . findOne ( {
89
+ where : {
90
+ post : { id : postId } ,
91
+ user : { id : userId } ,
92
+ } ,
90
93
relations : [ 'user' , 'post' ] ,
91
94
} ) ;
92
95
93
- const existingLike = likeData . filter ( ( like ) => like . user . id === userId ) ;
96
+ const allLikesData = await this . postLikeRepository . find ( {
97
+ where : { post : { id : postId } , status : 'activated' } ,
98
+ } ) ;
94
99
95
- if ( existingLike . length > 0 ) {
100
+ if ( likeData ) {
96
101
// 좋아요 actiavated인 경우 -> 좋아요 취소
97
102
// 좋아요 deactivated인 경우 -> 다시 좋아요 누름
98
- existingLike [ 0 ] . status =
99
- existingLike [ 0 ] . status === 'deactivated' ? 'activated' : 'deactivated' ;
100
- existingLike [ 0 ] . updatedAt = new Date ( ) ;
101
- await this . postLikeRepository . save ( existingLike ) ;
103
+ likeData . status =
104
+ likeData . status === 'deactivated' ? 'activated' : 'deactivated' ;
105
+ await this . postLikeRepository . save ( likeData ) ;
102
106
return {
103
- id : existingLike [ 0 ] . post . id ,
104
- isPostLike : existingLike [ 0 ] . status === 'activated' ,
107
+ id : likeData . post . id ,
108
+ isPostLike : likeData . status === 'activated' ,
105
109
postLikesCount :
106
- existingLike [ 0 ] . status === 'activated'
107
- ? likeData . length + 1
108
- : likeData . length - 1 ,
110
+ likeData . status === 'activated'
111
+ ? allLikesData . length + 1
112
+ : allLikesData . length - 1 ,
109
113
} ;
110
114
} else {
111
115
// 좋아요 생성 (처음 좋아요 눌림)
@@ -118,7 +122,7 @@ export class PostLikeService {
118
122
return {
119
123
id : newLike . post . id ,
120
124
isPostLike : newLike . status === 'activated' ,
121
- postLikesCount : likeData . length + 1 ,
125
+ postLikesCount : allLikesData . length + 1 ,
122
126
} ;
123
127
}
124
128
}
0 commit comments