Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const express = require("express");
- const router = express.Router();
- const Movie = require("../models/movie");
- const User = require("../models/user");
- const UserList = require("../models/userList");
- const JWT = require('jsonwebtoken');
- const {JWT_SECRET} = require ("../configuration");
- const bcrypt = require("bcryptjs");
- //gets the list of movies
- router.get("/movies", function(req, res, next){
- Movie.find({}).then(function(movies){
- res.send(movies);
- });
- });
- //add new movie
- router.post("/movies", function(req,res,next){
- var token = req.headers['x-access-token'];
- if (!token) return res.status(401).send({ auth: false, message: 'No token provided.' });
- JWT.verify(token, JWT_SECRET, function(err, decoded) {
- if (err) return res.status(500).send({ auth: false, message: 'Failed to authenticate token.' });
- Movie.findOne(req.body,(function(err, movie){
- console.log(movie);
- if (!movie){
- Movie.create(req.body).then(function(movie2){
- UserList.create({
- "user_id": decoded.iat,
- "movie_id": movie2._id
- }).catch(next);
- }).catch(next);
- }else{
- console.log("debug3" + movie);
- UserList.create({
- "user_id": decoded.iat,
- "movie_id": movie._id
- }).catch(next);
- }
- })
- );
- });
- })
- //add new user
- router.post("/users", function(req,res,next){
- var hashedPassword = bcrypt.hashSync(req.body.password, 8);
- User.findOne({
- "username": req.body.username}, function(err, user){
- if(user){
- console.log("User exists");
- }else{
- User.create({
- username: req.body.username,
- password : hashedPassword
- },
- function (err, user) {
- if (err) return res.status(500).send("There was a problem registering the user.")
- var token = JWT.sign({ id:req.params.id }, JWT_SECRET, {
- expiresIn: 86400 // expires in 24 hours
- });
- res.status(200).send({ auth: true, token: token });
- });
- }
- })
- });
- //update movie
- router.put("/movies/:id", function(req, res, next){
- Movie.findByIdAndUpdate({_id: req.params.id}, req.body).then(function(){
- Movie.findOne({_id:req.params.id}).then(function(movie){
- res.send(movie);
- })
- });
- });
- //delete movie
- router.delete("/movies/:id", function(req, res, next){
- Movie.findByIdAndRemove({_id: req.params.id}).then(function(movie){
- res.send(movie);
- });
- });
- module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement