Guest User

Untitled

a guest
Nov 30th, 2018
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. import { User } from './user.model';
  2. import { Recipe } from '../recipe/recipe.model';
  3. import { signIn, verify } from '../../modules/auth';''
  4.  
  5. const loginUser = async(root, { input }) => {
  6. const { email, password } = input;
  7. const user = await User.findOne({ email }).exec();
  8.  
  9. const errorMsg = 'Wrong credentials. Please try again';
  10.  
  11. if(!user) {
  12. throw new Error (errorMsg);
  13. }
  14.  
  15. if(user.comparePassword(password)) {
  16. user.token = signIn({ id: user._id, email: user.email });
  17. return user;
  18. }
  19. else{
  20. throw new Error (errorMsg);
  21. }
  22. };
  23.  
  24. const createUser = async (root, { input }) => {
  25. const existingUser = await User.findOne({ email: input.email }).exec();
  26. if(existingUser) {
  27. throw new Error('User already exist!');
  28. }
  29. const user = new User();
  30. const newUserInput = Object.assign(input, { password: user.generateHashPassword(input.password) });
  31. const createNewUser = await User.create(newUserInput);
  32. if(!createNewUser) {
  33. throw new Error('User not created successfully. Please try again');
  34. }
  35. createNewUser.token = signIn({ id: createNewUser._id, email: createNewUser.email });
  36. return createNewUser;
  37. };
  38.  
  39. const getMe = (root, args, { user }, info) => {
  40. if(!user) {
  41. throw new Error('Hey!, you are not authenticated');
  42. }
  43. return User.findById(user.id).exec();
  44. };
  45.  
  46. export const userResolvers = {
  47. Query: {
  48. getMe
  49. },
  50.  
  51. Mutation: {
  52. createUser,
  53. loginUser
  54. },
  55.  
  56. User: {
  57. recipes(user) {
  58. return Recipe.find({ userId: user.id }).exec()
  59. }
  60. }
  61. }
Add Comment
Please, Sign In to add comment