Working synchronization
This commit is contained in:
@@ -68,7 +68,19 @@ const endpoints = new Router()
|
|||||||
serverSideUser.updatedAt = new Date();
|
serverSideUser.updatedAt = new Date();
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.response.body = serverSideUser;
|
await users.updateOne({ id: userId }, {
|
||||||
|
$set: {
|
||||||
|
tasks: serverSideUser.tasks,
|
||||||
|
categories: serverSideUser.categories,
|
||||||
|
updatedAt: serverSideUser.updatedAt
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
ctx.response.body = {
|
||||||
|
tasks: serverSideUser.tasks,
|
||||||
|
categories: serverSideUser.categories,
|
||||||
|
updatedAt: serverSideUser.updatedAt,
|
||||||
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
const routes = new Router()
|
const routes = new Router()
|
||||||
|
|||||||
@@ -29,7 +29,11 @@ class Api {
|
|||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
console.log(await response.json());
|
|
||||||
|
const syncedData = await response.json();
|
||||||
|
store.commit('setTasks', syncedData.tasks);
|
||||||
|
store.commit('setCategories', syncedData.categories);
|
||||||
|
store.commit('updated');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,11 +16,13 @@ export default createStore({
|
|||||||
},
|
},
|
||||||
mutations: {
|
mutations: {
|
||||||
addCategory(state, category) {
|
addCategory(state, category) {
|
||||||
|
this.commit('updated');
|
||||||
if (category && !state.categories.includes(category)) {
|
if (category && !state.categories.includes(category)) {
|
||||||
state.categories = [...state.categories, category];
|
state.categories = [...state.categories, category];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
removeCategory(state, category) {
|
removeCategory(state, category) {
|
||||||
|
this.commit('updated');
|
||||||
state.categories = state.categories.filter((element) => element !== category);
|
state.categories = state.categories.filter((element) => element !== category);
|
||||||
state.tasks = state.tasks.map((task) => {
|
state.tasks = state.tasks.map((task) => {
|
||||||
const newTask = task;
|
const newTask = task;
|
||||||
@@ -29,6 +31,7 @@ export default createStore({
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
assignCategory(state, { name, category }) {
|
assignCategory(state, { name, category }) {
|
||||||
|
this.commit('updated');
|
||||||
state.tasks = state.tasks.map((task) => {
|
state.tasks = state.tasks.map((task) => {
|
||||||
const newTask = task;
|
const newTask = task;
|
||||||
if (newTask.name === name) {
|
if (newTask.name === name) {
|
||||||
@@ -37,8 +40,12 @@ export default createStore({
|
|||||||
return newTask;
|
return newTask;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
setCategories(state, categories) {
|
||||||
|
state.categories = categories;
|
||||||
|
},
|
||||||
|
|
||||||
addTask(state, name) {
|
addTask(state, name) {
|
||||||
|
this.commit('updated');
|
||||||
if (name) {
|
if (name) {
|
||||||
const task = {
|
const task = {
|
||||||
name,
|
name,
|
||||||
@@ -51,12 +58,15 @@ export default createStore({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
removeTask(state, name) {
|
removeTask(state, name) {
|
||||||
|
this.commit('updated');
|
||||||
state.tasks = state.tasks.filter((task) => task.name !== name);
|
state.tasks = state.tasks.filter((task) => task.name !== name);
|
||||||
},
|
},
|
||||||
removeAllTasks(state) {
|
removeAllTasks(state) {
|
||||||
|
this.commit('updated');
|
||||||
state.tasks = [];
|
state.tasks = [];
|
||||||
},
|
},
|
||||||
startTask(state, name) {
|
startTask(state, name) {
|
||||||
|
this.commit('updated');
|
||||||
state.tasks = state.tasks.map((task) => {
|
state.tasks = state.tasks.map((task) => {
|
||||||
const newTask = task;
|
const newTask = task;
|
||||||
if (newTask.name === name) {
|
if (newTask.name === name) {
|
||||||
@@ -71,6 +81,7 @@ export default createStore({
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
stopTask(state, name) {
|
stopTask(state, name) {
|
||||||
|
this.commit('updated');
|
||||||
state.tasks = state.tasks.map((task) => {
|
state.tasks = state.tasks.map((task) => {
|
||||||
const newTask = task;
|
const newTask = task;
|
||||||
if (newTask.name === name) {
|
if (newTask.name === name) {
|
||||||
@@ -82,6 +93,7 @@ export default createStore({
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
resetTasks(state) {
|
resetTasks(state) {
|
||||||
|
this.commit('updated');
|
||||||
state.tasks = state.tasks.map((task) => {
|
state.tasks = state.tasks.map((task) => {
|
||||||
const newTask = task;
|
const newTask = task;
|
||||||
newTask.running = false;
|
newTask.running = false;
|
||||||
@@ -91,13 +103,16 @@ export default createStore({
|
|||||||
});
|
});
|
||||||
state.lastReset = new Date();
|
state.lastReset = new Date();
|
||||||
},
|
},
|
||||||
|
setTasks(state, tasks) {
|
||||||
|
state.tasks = tasks;
|
||||||
|
},
|
||||||
|
|
||||||
setMidnightReset(state, value) {
|
setMidnightReset(state, value) {
|
||||||
state.midnightReset = !!value;
|
state.midnightReset = !!value;
|
||||||
},
|
},
|
||||||
|
|
||||||
updated(state) {
|
updated(state, at) {
|
||||||
state.updatedAt = new Date();
|
state.updatedAt = at ?? new Date();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
plugins: [vuexLocal.plugin],
|
plugins: [vuexLocal.plugin],
|
||||||
|
|||||||
Reference in New Issue
Block a user