Advertisement
Guest User

Untitled

a guest
Dec 6th, 2017
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. const express = require("express");
  2. const router = express.Router();
  3. const Movie = require("../models/movie");
  4. const User = require("../models/user");
  5. const UserList = require("../models/userList");
  6. const JWT = require('jsonwebtoken');
  7. const {JWT_SECRET} = require ("../configuration");
  8. const bcrypt = require("bcryptjs");
  9.  
  10.  
  11.  
  12. //gets the list of movies
  13. router.get("/movies", function(req, res, next){
  14. Movie.find({}).then(function(movies){
  15. res.send(movies);
  16. });
  17. });
  18.  
  19. //add new movie
  20. router.post("/movies", function(req,res,next){
  21. var token = req.headers['x-access-token'];
  22. if (!token) return res.status(401).send({ auth: false, message: 'No token provided.' });
  23.  
  24. JWT.verify(token, JWT_SECRET, function(err, decoded) {
  25. if (err) return res.status(500).send({ auth: false, message: 'Failed to authenticate token.' });
  26.  
  27. Movie.findOne(req.body,(function(err, movie){
  28. console.log(movie);
  29. if (!movie){
  30. Movie.create(req.body).then(function(movie2){
  31. UserList.create({
  32. "user_id": decoded.iat,
  33. "movie_id": movie2._id
  34. }).catch(next);
  35. }).catch(next);
  36. }else{
  37. console.log("debug3" + movie);
  38. UserList.create({
  39. "user_id": decoded.iat,
  40. "movie_id": movie._id
  41. }).catch(next);
  42. }
  43. })
  44. );
  45. });
  46. })
  47.  
  48. //add new user
  49. router.post("/users", function(req,res,next){
  50. var hashedPassword = bcrypt.hashSync(req.body.password, 8);
  51. User.findOne({
  52. "username": req.body.username}, function(err, user){
  53. if(user){
  54. console.log("User exists");
  55. }else{
  56. User.create({
  57. username: req.body.username,
  58. password : hashedPassword
  59. },
  60. function (err, user) {
  61. if (err) return res.status(500).send("There was a problem registering the user.")
  62. var token = JWT.sign({ id:req.params.id }, JWT_SECRET, {
  63. expiresIn: 86400 // expires in 24 hours
  64. });
  65. res.status(200).send({ auth: true, token: token });
  66. });
  67. }
  68. })
  69. });
  70.  
  71.  
  72. //update movie
  73. router.put("/movies/:id", function(req, res, next){
  74. Movie.findByIdAndUpdate({_id: req.params.id}, req.body).then(function(){
  75. Movie.findOne({_id:req.params.id}).then(function(movie){
  76. res.send(movie);
  77. })
  78. });
  79. });
  80.  
  81. //delete movie
  82. router.delete("/movies/:id", function(req, res, next){
  83. Movie.findByIdAndRemove({_id: req.params.id}).then(function(movie){
  84. res.send(movie);
  85. });
  86. });
  87.  
  88.  
  89. module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement