Created
August 18, 2017 02:57
-
-
Save unicodeveloper/f100a8441862a4027275a5feff0027e8 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Let’s import our models User and Note | |
import { Note, User } from ‘./connector’; | |
import logger from ‘../config/logdna’; | |
// Define the resolvers | |
const resolvers = { | |
Query: { | |
// Handles Login of users | |
login(_, args) { | |
return new Promise((resolve, reject) => { | |
setTimeout(() => reject(logger.warn(‘Action has taken over 15secs’)), 15000); | |
User.findOne({ | |
where: { | |
email: args.email, | |
password: args.password, | |
}, | |
}).then((user) => resolve(user), () => reject(logger.warn(‘Could not fetch user with email: ‘+args.email, args))); | |
}); | |
}, | |
// Handles creation of users | |
createUser(_, args) { | |
return new Promise((resolve, reject) => { | |
setTimeout(() => reject(logger.warn(‘Action has taken over 15secs’)), 15000); | |
User.create({ | |
email: args.email, | |
password: args.password, | |
firstname: args.firstname, | |
lastname: args.lastname, | |
bio: args.bio, | |
}).then((user) => resolve(user), () => reject(logger.warn(‘Could not create user’, args))); | |
}); | |
}, | |
// Handles fetching all created users | |
fetchAllUsers() { | |
return new Promise((resolve, reject) => { | |
setTimeout(() => reject(logger.warn(‘Action has taken over 15secs’)), 15000); | |
User.all().then((users) => resolve(users), () => reject(logger.warn(‘Could not fetch all users in the database’))); | |
}); | |
}, | |
// Handles fetching the details of a particular user | |
fetchUser(_, args) { | |
return new Promise((resolve, reject) => { | |
setTimeout(() => reject(logger.warn(‘Action has taken over 15secs’)), 15000); | |
User.find({ | |
where: { | |
id: args.id, | |
}, | |
}).then((user) => resolve(user), () => reject(logger.warn(‘Could not fetch user with id: ‘+args.id, args))); | |
}); | |
}, | |
// Handles updating a user’s details | |
updateUser(_, args) { | |
return new Promise((resolve, reject) => { | |
setTimeout(() => reject(logger.warn(‘Action has taken over 15secs’)), 15000); | |
User.update({ | |
firstname: args.firstname, | |
lastname: args.lastname, | |
password: args.password, | |
bio: args.bio, | |
}, { | |
where: { | |
id: args.id, | |
}, | |
}).then((user) => resolve(user), () => reject(logger.warn(‘Could not update user with id: ‘+args.id, args))); | |
}); | |
}, | |
// Handles creating noted | |
createNote(_, args) { | |
return new Promise((resolve, reject) => { | |
setTimeout(() => reject(logger.warn(‘Action has taken over 15secs’)), 15000); | |
Note.create({ | |
title: args.title, | |
body: args.body, | |
userId: args.userId, | |
}).then((note) => resolve(note), () => reject(logger.warn(‘Could not create note’, args))); | |
}); | |
}, | |
// Handles fetching of a note by ID | |
fetchNote(_, args) { | |
return new Promise((resolve, reject) => { | |
setTimeout(() => reject(logger.warn(‘Action has taken over 15secs’)), 15000); | |
Note.find({ | |
id: args.id, | |
}).then((note) => resolve(note), () => reject(logger.warn(‘Could not fetch note with id: ‘+args.id, args))); | |
}); | |
}, | |
// Handles fetching all notes | |
fetchAllNotes() { | |
return new Promise((resolve, reject) => { | |
setTimeout(() => reject(logger.warn(‘Action has taken over 15secs’)), 15000); | |
Note.all().then((notes) => resolve(notes), () => reject(logger.warn(‘Could not fetch all the notes in the database’))); | |
}); | |
}, | |
// Handles updating of a note | |
updateNote(_, args) { | |
return new Promise((resolve, reject) => { | |
setTimeout(() => reject(logger.warn(‘Action has taken over 15secs’)), 15000); | |
Note.update({ | |
title: args.title, | |
body: args.body, | |
}, { | |
where: { | |
id: args.id, | |
}, | |
}).then(note => resolve(note), () => reject(logger.warn(‘Could not update note with id: ‘+args.id, args))); | |
}); | |
}, | |
// Handles deleting of note | |
deleteNote(_, args) { | |
return new Promise((resolve, reject) => { | |
setTimeout(() => reject(logger.warn(‘Action has taken over 15secs’)), 15000); | |
Note.destroy({ | |
where: { | |
id: args.id, | |
}, | |
}).then((note) => resolve(note), () => reject(logger.warn(‘Could not delete note with id: ‘+args.id, args))); | |
}); | |
}, | |
}, | |
User: { | |
// Fetches all notes that belongs to a user | |
notes(user) { | |
return user.getNotes(); | |
}, | |
}, | |
Note: { | |
// Fetches the owner of a particular note | |
user(note) { | |
return note.getUser(); | |
}, | |
}, | |
}; | |
export default resolvers; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment