Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 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;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement