Files
alexis/lib/components/todo/route.js
2023-08-01 12:47:58 +02:00

31 lines
1.1 KiB
JavaScript

'use strict'
const {receivedTodos, addTodo} = require('./actions')
module.exports = {
// returns all todos
'/todos': (store, params, cb) => cb(store.getState().todos),
// adds a todo & returns all todos
'/todos/add': (store, params, cb, Proxy) => Proxy.act('todo', 'add', params, result => {
console.log('result', result)
cb(result)
}),
// deletes a todo & returns all todos
'/todos/delete': (store, params, cb, Proxy) => Proxy.act('todo', 'delete', params, async result => {
const data = await Proxy.fetch('todo')
store.dispatch(receivedTodos(data.todo.values))
cb(data.todo.values)
}),
// completes a todo & returns all todos
'/todos/complete': (store, params, cb, Proxy) => Proxy.act('todo', 'complete', params, async result => {
const data = await Proxy.fetch('todo')
store.dispatch(receivedTodos(data.todo.values))
cb(data.todo.values)
}),
// updates a todo & returns all todos
'/todos/update': (store, params, cb, Proxy) => Proxy.act('todo', 'update', params, async result => {
const data = await Proxy.fetch('todo')
store.dispatch(receivedTodos(data.todo.values))
cb(data.todo.values)
}),
}