todo-app/server/resolvers/todoResolvers.js
2020-06-14 21:05:20 +03:00

34 lines
950 B
JavaScript

const { Todo, Category } = require('../models')
const todoResolvers = {
Query: {
todos: () => Todo.find({}),
todo: (_, { id }) => Todo.findById(id),
},
Mutation: {
createTodo: (_, { title, description, deadline, categoryId }) => {
const todo = new Todo({
title,
description,
createdAt: new Date().toISOString(),
updatedAt: new Date().toISOString(),
deadline,
categoryId,
})
return todo.save()
},
deleteTodo: async (_, { id }) => {
const deletedTodo = await Todo.findByIdAndRemove(id)
return deletedTodo
},
updateTodo: (_, { id, title, description, deadline, categoryId }) => Todo.findByIdAndUpdate(id, { $set: { title, description, updatedAt: new Date().toISOString(), deadline, categoryId } }, { new: true }),
},
Todo: {
category: ({ categoryId }) => Category.findById(categoryId),
},
}
module.exports = {
todoResolvers,
}