Skip to content

Commit c9f1ac5

Browse files
Mongodb 02 13 Movie Service 테스트하기 2
1 parent 4bbfcf9 commit c9f1ac5

File tree

2 files changed

+24
-20
lines changed

2 files changed

+24
-20
lines changed

src/movie/movie.controller.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -98,22 +98,22 @@ export class MovieController {
9898
@Patch(':id')
9999
@RBAC(Role.admin)
100100
patchMovie(
101-
@Param('id', ParseIntPipe) id: number,
101+
@Param('id') id: string,
102102
@Body() body: UpdateMovieDto,
103103
) {
104104
return this.movieService.update(
105-
+id,
105+
id,
106106
body,
107107
);
108108
}
109109

110110
@Delete(':id')
111111
@RBAC(Role.admin)
112112
deleteMovie(
113-
@Param('id', ParseIntPipe) id: number,
113+
@Param('id') id: string,
114114
) {
115115
return this.movieService.remove(
116-
+id,
116+
id,
117117
);
118118
}
119119

@@ -143,16 +143,16 @@ export class MovieController {
143143
*/
144144
@Post(':id/like')
145145
createMovieLike(
146-
@Param('id', ParseIntPipe) movieId: number,
147-
@UserId() userId: number,
146+
@Param('id') movieId: string,
147+
@UserId() userId: string,
148148
) {
149149
return this.movieService.toggleMovieLike(movieId, userId, true);
150150
}
151151

152152
@Post(':id/dislike')
153153
createMovieDislike(
154-
@Param('id', ParseIntPipe) movieId: number,
155-
@UserId() userId: number,
154+
@Param('id') movieId: string,
155+
@UserId() userId: string,
156156
) {
157157
return this.movieService.toggleMovieLike(movieId, userId, false);
158158
}

src/movie/movie.service.ts

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,8 @@ export class MovieService {
176176
// const movieIds = data.map(movie => movie.id);
177177

178178
const likedMovies = movieIds.length < 1 ? [] : await this.movieUserLikeModel.find({
179-
movie: { $in: movieIds },
180-
user: userId,
179+
movie: { $in: movieIds.map((id) => new Types.ObjectId(id.toString())) },
180+
user: new Types.ObjectId(userId.toString()),
181181
})
182182
.populate('movie')
183183
.exec();
@@ -495,7 +495,7 @@ export class MovieService {
495495
// .addAndRemove(newGenres.map(genre => genre.id), movie.genres.map(genre => genre.id));
496496
}
497497

498-
async update(id: number, updateMovieDto: UpdateMovieDto) {
498+
async update(id: string, updateMovieDto: UpdateMovieDto) {
499499
const session = await this.movieModel.startSession();
500500
session.startTransaction();
501501

@@ -553,7 +553,11 @@ export class MovieService {
553553
await session.commitTransaction();
554554

555555
return this.movieModel.findById(id)
556-
.populate('detail director genres').exec();
556+
.populate('detail director')
557+
.populate({
558+
path: 'genres',
559+
model: 'Genre',
560+
}).exec();
557561
} catch (e) {
558562
await session.abortTransaction();
559563
} finally {
@@ -755,7 +759,7 @@ export class MovieService {
755759
// .execute();
756760
}
757761

758-
async remove(id: number) {
762+
async remove(id: string) {
759763
const movie = await this.movieModel.findById(id).populate('detail').exec();
760764
// const movie = await this.prisma.movie.findUnique({
761765
// where: {
@@ -804,7 +808,7 @@ export class MovieService {
804808
// .getOne();
805809
}
806810

807-
async toggleMovieLike(movieId: number, userId: number, isLike: boolean) {
811+
async toggleMovieLike(movieId: string, userId: string, isLike: boolean) {
808812
const movie = await this.movieModel.findById(movieId).exec();
809813
// const movie = await this.prisma.movie.findUnique({
810814
// where: {
@@ -839,8 +843,8 @@ export class MovieService {
839843
}
840844

841845
const likeRecord = await this.movieUserLikeModel.findOne({
842-
movie: movieId,
843-
user: userId,
846+
movie: new Types.ObjectId(movieId),
847+
user: new Types.ObjectId(userId),
844848
})
845849
// const likeRecord = await this.prisma.movieUserLike.findUnique({
846850
// where: {
@@ -884,8 +888,8 @@ export class MovieService {
884888
}
885889
} else {
886890
await this.movieUserLikeModel.create({
887-
movie: movieId,
888-
user: userId,
891+
movie: new Types.ObjectId(movieId),
892+
user: new Types.ObjectId(userId),
889893
isLike,
890894
})
891895
// await this.prisma.movieUserLike.create({
@@ -903,8 +907,8 @@ export class MovieService {
903907
}
904908

905909
const result = await this.movieUserLikeModel.findOne({
906-
movie: movieId,
907-
user: userId,
910+
movie: new Types.ObjectId(movieId),
911+
user: new Types.ObjectId(userId),
908912
});
909913
// const result = await this.prisma.movieUserLike.findUnique({
910914
// where: {

0 commit comments

Comments
 (0)