Guest User

Untitled

a guest
Nov 7th, 2017
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1. import { User } from './connectors';
  2. import bcrypt from 'bcrypt';
  3. import jwt from 'jsonwebtoken';
  4. import Constants from '../constants';
  5.  
  6. const resolvers = {
  7. Query: {
  8. user(_, args) {
  9. return User.find({ where: args });
  10. },
  11. allUsers: (_, args, ctx) => {
  12. return ctx.user.then((user) => {
  13. if (!user) {
  14. return Promise.reject('Unauthorized');
  15. }
  16. return User.all();
  17. });
  18.  
  19. }
  20. },
  21. Mutation: {
  22. createUser: (_, data) => {
  23. const ret = User.create({
  24. firstName: data.firstName,
  25. lastName: data.lastName,
  26. })
  27. return ret
  28. },
  29. deleteUser: (_,args)=> {
  30. User.destroy({ where: args });
  31. return { id : args.id}
  32. },
  33. updateUser: (_,args)=> {
  34. User.update({ firstName: args.firstName,lastName: args.lastName },{ where: { id: args.id } });
  35. return { id: args.id, firstName: args.firstName,lastName: args.lastName}
  36. },
  37. login(_, { email, password }, ctx) {
  38.  
  39. return User.findOne({ where: { email } }).then((user) => {
  40. if (user) {
  41.  
  42. return bcrypt.compare(password, user.password).then((res) => {
  43. if (res) {
  44.  
  45. const token = jwt.sign({
  46. id: user.id,
  47. email: user.email,
  48. }, Constants.SECRET);
  49. user.jwt = token;
  50. ctx.user = Promise.resolve(user);
  51. return user;
  52. }
  53.  
  54. return Promise.reject('password incorrect');
  55. });
  56. }
  57.  
  58. return Promise.reject('email not found');
  59. });
  60. },
  61. signup(_, { email, password }, ctx) {
  62.  
  63. return User.findOne({ where: { email } }).then((existing) => {
  64. if (!existing) {
  65.  
  66. return bcrypt.hash(password, 10).then(hash => User.create({
  67. email,
  68. password: hash
  69. })).then((user) => {
  70. const { id } = user;
  71. const token = jwt.sign({ id, email }, Constants.SECRET);
  72. user.jwt = token;
  73. ctx.user = Promise.resolve(user);
  74. return user;
  75. });
  76. }
  77.  
  78. return Promise.reject('email already exists');
  79. });
  80. }
  81. }
  82. };
  83.  
  84. export default resolvers;
Add Comment
Please, Sign In to add comment