| | |
| | | |
| | | const dummyData = [ |
| | | { |
| | | title: "Learn awesome things about Labs", |
| | | _id: 0, |
| | | title: "Learn awesome things about Labs 🔬", |
| | | completed: false, |
| | | important: false |
| | | }, |
| | | { |
| | | title: "Learn about my friend Jenkins", |
| | | _id: 1, |
| | | title: "Learn about my friend Jenkins 🎉", |
| | | completed: true, |
| | | important: false |
| | | }, |
| | | { |
| | | title: "Have a poop", |
| | | _id: 2, |
| | | title: "Drink Coffee ☕💩", |
| | | completed: false, |
| | | important: true |
| | | } |
| | | ]; |
| | | export default { |
| | | loadTodos({ commit }) { |
| | | axios |
| | | return axios |
| | | .get(config.todoEndpoint) |
| | | .then(r => r.data) |
| | | .then(todos => { |
| | | commit("SET_TODOS", todos); |
| | | commit("SET_LOADING", false); |
| | | }).catch(err => { |
| | | }) |
| | | .catch(err => { |
| | | if (err) { |
| | | console.info("INFO - setting dummy data because of ", err) |
| | | console.info("INFO - setting dummy data because of ", err); |
| | | commit("SET_TODOS", dummyData); |
| | | commit("SET_LOADING", false); |
| | | } |
| | |
| | | // debugger |
| | | const todo = { |
| | | title: state.newTodo, |
| | | completed: false, |
| | | important: false |
| | | completed: false |
| | | }; |
| | | axios.post(config.todoEndpoint, todo).then(mongoTodo => { |
| | | commit("ADD_TODO", mongoTodo.data); |
| | | }); |
| | | // console.info("TESTINT BLAH BLAH ", todo); |
| | | return axios |
| | | .post(config.todoEndpoint, todo) |
| | | .then(mongoTodo => { |
| | | commit("ADD_TODO", mongoTodo.data); |
| | | }) |
| | | .catch(err => { |
| | | if (err) { |
| | | console.info("INFO - Adding dummy todo because of ", err); |
| | | let mongoTodo = todo; |
| | | mongoTodo._id = "fake-todo-item-" + Math.random(); |
| | | commit("ADD_TODO", mongoTodo); |
| | | } |
| | | }); |
| | | }, |
| | | setNewTodo({ commit }, todo) { |
| | | // debugger |
| | | commit("SET_NEW_TODO", todo); |
| | | }, |
| | | updateTodo({ commit, state }, todo) { |
| | | // const todo = state.newTodo |
| | | // debugger; |
| | | const foundIndex = state.todos.findIndex(obj => obj.id === todo.id); |
| | | state.todos[foundIndex] = todo; |
| | | const newUpdatedArray = state.todos; |
| | | commit("UPDATE_TODO", newUpdatedArray); |
| | | }, |
| | | clearNewTodo({ commit }) { |
| | | commit("CLEAR_NEW_TODO"); |
| | | }, |
| | | clearTodos({ commit, state }, all) { |
| | | // 1 fire and forget or |
| | | const deleteStuff = (id) => { |
| | | axios.delete(config.todoEndpoint + '/' + id).then(data => { |
| | | const deleteStuff = id => { |
| | | axios.delete(config.todoEndpoint + "/" + id).then(data => { |
| | | console.info("INFO - item " + id + " deleted", data); |
| | | }); |
| | | }; |
| | | |
| | | if (all) { |
| | | state.todos.map(todo => { |
| | | deleteStuff(todo._id) |
| | | state.todos.map(todo => { |
| | | deleteStuff(todo._id); |
| | | }); |
| | | commit("CLEAR_ALL_TODOS"); |
| | | } else { |
| | | state.todos.map(todo => { |
| | | // axios remove all done by the id |
| | | if (todo.completed) { |
| | | deleteStuff(todo._id) |
| | | deleteStuff(todo._id); |
| | | } |
| | | }); |
| | | commit("CLEAR_ALL_DONE_TODOS"); |
| | | } |
| | | // 2 return array of promises and resolve all |
| | | }, |
| | | /* eslint: ignore */ |
| | | updateTodo({ commit, state }, { id, important }) { |
| | | let i = state.todos.findIndex(todo => todo._id === id); |
| | | if (important) { |
| | | // TODO - add commit imporant here! |
| | | } else { |
| | | commit("MARK_TODO_COMPLETED", i); |
| | | } |
| | | // Fire and forget style backend update ;) |
| | | return axios |
| | | .put(config.todoEndpoint + "/" + state.todos[i]._id, state.todos[i]) |
| | | .then(() => { |
| | | console.info("INFO - item " + id + " updated"); |
| | | }); |
| | | } |
| | | }; |