Commit 39c7caed authored by Kim, Subin's avatar Kim, Subin
Browse files

movie route&controller 추가

parent 77a77140
import axios from 'axios' import axios from 'axios'
import { Movie } from "../db/index.js"; import { Movie } from "../db/index.js";
import sequelize from 'sequelize';
const { Op } = sequelize
const comparePopularMovie = async (req, res) => { const comparePopularMovie = async (req, res) => {
const response = await axios.get('https://api.themoviedb.org/3/movie/popular?api_key=1477348488076cafd4dcf973a314957d&language=ko-KR') const response = await axios.get('https://api.themoviedb.org/3/movie/popular?api_key=1477348488076cafd4dcf973a314957d&language=ko-KR')
...@@ -8,7 +10,52 @@ const comparePopularMovie = async (req, res) => { ...@@ -8,7 +10,52 @@ const comparePopularMovie = async (req, res) => {
try { try {
} catch (error) { } catch (error) {
return res.status(500).send(error.message || "영화 가져오기 중 에러 발생");
}
}
const getMovieByCategory = async (req, res, next, category) => {
const responsePopular = await axios.get(`https://api.themoviedb.org/3/movie/${category}?api_key=${process.env.TMDB_APP_KEY}&language=ko-KR&page=1`)
const TMDBmovies = responsePopular.data.results
const TMDBmovieIds = []
TMDBmovies.forEach(element => {
TMDBmovieIds.push(element.id)
});
console.log(TMDBmovieIds)
try {
const responseAfterCompare = await Movie.findAll({
where: {
movieId: {
[Op.or]: TMDBmovieIds
}
}
})
const movieIds = []
responseAfterCompare.forEach(el => {
movieIds.push(el.movieId)
})
console.log('movieIds=', movieIds)
req.movieIds = movieIds
next()
} catch (error) {
return res.status(500).send(error.message || "영화 가져오기 중 에러 발생");
}
}
const getMovieById = async (req, res) => {
try {
const movieIds = req.movieIds
console.log(movieIds)
const elements = await Promise.all(
movieIds.map(async (movieId) => {
const movie = await axios.get(`https://api.themoviedb.org/3/movie/${movieId}?api_key=${process.env.TMDB_APP_KEY}&language=ko-KR`)
return movie.data
})
)
console.log(elements)
res.json(elements)
} catch (error) {
return res.status(500).send(error.message || "영화 가져오기 중 에러 발생");
} }
} }
...@@ -24,5 +71,7 @@ const create = async (req, res) => { ...@@ -24,5 +71,7 @@ const create = async (req, res) => {
export default { export default {
comparePopularMovie, comparePopularMovie,
getMovieByCategory,
getMovieById,
create, create,
} }
\ No newline at end of file
...@@ -12,4 +12,10 @@ router ...@@ -12,4 +12,10 @@ router
.route("/:movieId") .route("/:movieId")
.post(movieCtrl.create) .post(movieCtrl.create)
router
.route('/showmovie/:category')
.get(movieCtrl.getMovieById)
router.param('category', movieCtrl.getMovieByCategory)
export default router; export default router;
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment