Skip to content
Snippets Groups Projects
Commit 55c286e4 authored by Bilel El Yaagoubi's avatar Bilel El Yaagoubi
Browse files

populate

parent fc112b68
No related branches found
No related tags found
1 merge request!7Populate and db structure
Pipeline #42476 passed
const mongoose = require("mongoose");
const MovieModel = require("./models/movie");
const axios = require("axios");
async function fetchMoviesFromTheMovieDatabase(n) {
// TODO: fetch movies from the The Movie Database API
try {
// Do something if call succeeded
const movieFetch = await axios.get(
`https://api.themoviedb.org/3/movie/popular?api_key=522d421671cf75c2cba341597d86403a&page=` +
n
);
// console.log(movieFetch.data.results);
return movieFetch.data.results;
} catch (error) {
// Do something if call failed
console.error(error);
}
}
async function populateMovies(movies) {
// TODO: populate movies into the database
try {
for (const movie of movies) {
const newMovie = await new MovieModel({
// Movie attributes
adult: movie.adult,
backdrop_path: movie.backdrop_path,
genre_ids: movie.genre_ids,
id: movie.id,
original_language: movie.original_language,
original_title: movie.original_title,
overview: movie.overview,
popularity: movie.popularity,
poster_path: movie.poster_path,
release_date: movie.release_date,
title: movie.title,
video: movie.video,
vote_average: movie.vote_average,
vote_count: movie.vote_count,
});
// Create a new movie instance
const createdMovie = await newMovie.save();
// What to do after movie has been saved !
console.log("Movie Saved !");
console.log(createdMovie.title);
}
} catch (error) {
console.log(error);
}
}
async function dropDataBase() {
// TODO: Drop the collections
try {
await MovieModel.deleteMany({});
} catch (error) {
console.log(error);
}
}
async function populate(N) {
// Connect mongoose client
const client = await mongoose.connect(process.env.MONGO_DB_URL);
await dropDataBase();
for (let n = 1; n < N; n++) {
const movies = await fetchMoviesFromTheMovieDatabase(n);
await populateMovies(movies);
console.log(n);
}
// disconnect mongoose client
await client.disconnect();
}
populate(300)
.then(() => {
console.log("All done !");
})
.catch((error) => {
console.error(error);
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment