Advertisement
Guest User

Untitled

a guest
Jun 3rd, 2018
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.56 KB | None | 0 0
  1. const express = require('express')
  2. const jwt = require('jsonwebtoken')
  3. const router = express.Router()
  4. const User = require('../models/user')
  5. const Player = require('../models/player')
  6. const request = require('request');
  7. const mongoose = require('mongoose')
  8. const champions = require('../champions')
  9. const bcrypt = require('bcrypt-nodejs')
  10. const db = "mongodb://userazuh:okokyt@ds137600.mlab.com:37600/seekplayersdb"
  11.  
  12. mongoose.connect(db, err => {
  13. if (err) {
  14. console.log('Error!' + err);
  15. } else {
  16. console.log('Connected to mongodb');
  17. }
  18. })
  19.  
  20. function verifyToken(req, res, next) {
  21. if (!req.headers.authorization) {
  22. return res.status(401).send('Unautorized request')
  23. }
  24. let token = req.headers.authorization.split(' ')[1]
  25. if (token === 'null') {
  26. return res.status(401).send('Unautorized request')
  27. }
  28. let payload = jwt.verify(token, 'secretKey')
  29. if (!payload) {
  30. return res.status(401).send('Unautorized request')
  31. }
  32. req.userId = payload.subject
  33. next()
  34. }
  35.  
  36. router.get('/', (req, res) => {
  37. res.send('From API route')
  38. });
  39.  
  40. router.get('/champions', (req, res) => {
  41. res.json({ champions });
  42. })
  43.  
  44. router.post('/register', (req, res) => {
  45. let userData = req.body
  46. userData.password = bcrypt.hashSync(userData.password, bcrypt.genSaltSync(8), null);
  47. let user = new User(userData)
  48. user.save((error, registeredUser) => {
  49. if (error) {
  50. res.status(400).json({message: "Your email is invalid"})
  51. } else {
  52. let payload = {
  53. subject: registeredUser._id
  54. }
  55. let token = jwt.sign(payload, 'secretKey')
  56. res.status(200).json({
  57. token,
  58. payload,
  59. user: registeredUser
  60. })
  61. }
  62. })
  63. })
  64.  
  65. router.post('/login', (req, res) => {
  66. let userData = req.body
  67. User.findOne({
  68. email: userData.email
  69. }).populate('playercard').exec((error, user) => {
  70. if (error) {
  71. res.status(400).json({message: "Your email or password is invalid"})
  72. } else {
  73. if (!user) {
  74. res.status(401).json({message: 'Invalid email'})
  75. } else {
  76. if (!bcrypt.compareSync(userData.password, user.password)) {
  77. res.status(401).json({message: 'Invalid password'})
  78. } else {
  79. let payload = {
  80. subject: user._id
  81. }
  82. let token = jwt.sign(payload, 'secretKey')
  83. res.status(200).send({
  84. token,
  85. user
  86. })
  87. }
  88. }
  89. }
  90. })
  91. })
  92.  
  93.  
  94. router.put('/account', (req, res) => {
  95. let userData = req.body;
  96. User.findOne({
  97. _id: userData.id
  98. }).exec((error, user) => {
  99. if (error) {
  100. res.status(401).json({message: 'User not found'})
  101. } else {
  102. user.email = userData.email;
  103. user.password = bcrypt.hashSync(userData.password, bcrypt.genSaltSync(8), null);
  104. user.save(function (err) {
  105. if (err) {
  106. return res.status(400).json({message: 'Invalid email'})
  107. }
  108. res.status(200).json({
  109. message: 'Account updated'
  110. })
  111. })
  112. }
  113. })
  114. })
  115.  
  116. router.put('/newuser', (req, res) => {
  117. let newCardData = req.body;
  118. Player.findOne({
  119. creator: newCardData.creator
  120. }, (err, player) => {
  121. if (err) {
  122. res.send(err);
  123. } else {
  124. player.pseudo = newCardData.pseudo;
  125. player.rank = newCardData.rank;
  126. player.server = newCardData.server;
  127. player.mainchamp = newCardData.mainchamp;
  128. player.role = newCardData.role;
  129. player.save(function (error) {
  130. if (error) {
  131. res.send(error)
  132. }
  133. res.send({
  134. message: 'Player updated'
  135. })
  136. })
  137. }
  138. })
  139. })
  140.  
  141.  
  142. router.delete('/account/:id', (req, res) => {
  143. User.remove({
  144. _id: req.params.id
  145. }, function (err) {
  146. if (err) {
  147. console.log('error');
  148. }
  149. })
  150. })
  151.  
  152. router.get('/players', (req, res) => {
  153. Player.find(function (err, players) {
  154. if (err) {
  155. res.send(err)
  156. }
  157. res.json(players)
  158. })
  159. })
  160.  
  161.  
  162. router.delete('/newuser/:id', (req, res) => {
  163. let id = req.params.id;
  164. Player.findOneAndRemove({
  165. creator: id
  166. }, function (err, player) {
  167. if (err) {
  168. res.send(err);
  169. }
  170. User.findOne({ playercard: player._id }, (err, user) => {
  171. user.playercard = null;
  172. user.save();
  173. })
  174. res.json({ success: true, message: 'Your card has been deleted' });
  175. })
  176. })
  177.  
  178. router.post('/newuser', (req, res) => {
  179. let cardData = req.body
  180. let player = new Player(cardData)
  181. player.save((err, new_Player) => {
  182. if (err) {
  183. console.log(err);
  184. } else {
  185. User.findOne({
  186. _id: cardData.creator
  187. }, function (err, user) {
  188. user.playercard = new_Player;
  189. res.status(200).json({ user: user,
  190. message: 'Your card has been created' })
  191. user.save();
  192. })
  193. }
  194. })
  195. })
  196.  
  197. module.exports = router
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement