You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
3.3 KiB
102 lines
3.3 KiB
'use strict';
|
|
|
|
import {
|
|
getReminder,
|
|
createReminder,
|
|
enableReminder,
|
|
disableReminder,
|
|
setTime,
|
|
setRecurrence
|
|
} from '../api/reminder';
|
|
|
|
|
|
export default {
|
|
namespaced: true,
|
|
mutations: {
|
|
reminderLoaded(state, options) {
|
|
state.reminderID = options.id;
|
|
state.active = options.active;
|
|
state.time = options.time;
|
|
state.recurrence = options.recur;
|
|
},
|
|
enableReminder(state) {
|
|
state.active = true;
|
|
},
|
|
disableReminder(state) {
|
|
state.active = false;
|
|
},
|
|
setTime(state, newTime) {
|
|
state.time = newTime;
|
|
},
|
|
setRecurrence(state, recurrence) {
|
|
state.recurrence = recurrence;
|
|
},
|
|
reminderCreated(state, reminderID) {
|
|
state.reminderID = reminderID;
|
|
}
|
|
},
|
|
actions: {
|
|
loadReminder(context) {
|
|
return new Promise((resolve, reject) => {
|
|
getReminder(localStorage.getItem('subscriberId')).then((result) => {
|
|
if (result.total_count > 0) {
|
|
context.commit('reminderLoaded', result._embedded['ngcp:reminders'][0]); // open to suggestions on how to extract data here
|
|
}
|
|
else {
|
|
// If no default reminder is set, then we need to create it.
|
|
createReminder(localStorage.getItem('subscriberId')).then((result) => {
|
|
context.commit('reminderCreated', result);
|
|
resolve();
|
|
}).catch((err) => {
|
|
reject(err);
|
|
});
|
|
}
|
|
resolve();
|
|
}).catch((err) => {
|
|
reject(err);
|
|
});
|
|
});
|
|
},
|
|
toggleReminder(context, enabled) {
|
|
return new Promise((resolve, reject) => {
|
|
if (enabled === true) {
|
|
enableReminder(context.state.reminderID).then(() => {
|
|
context.commit('enableReminder');
|
|
resolve();
|
|
}).catch((err) => {
|
|
reject(err);
|
|
});
|
|
}
|
|
else {
|
|
disableReminder(context.state.reminderID).then(() => {
|
|
context.commit('disableReminder');
|
|
resolve();
|
|
}).catch((err) => {
|
|
reject(err);
|
|
});
|
|
}
|
|
});
|
|
},
|
|
changeTime(context, time) {
|
|
return new Promise((resolve, reject) => {
|
|
setTime(context.state.reminderID, time).then(() => {
|
|
context.commit('setTime', time);
|
|
resolve();
|
|
}).catch((err) => {
|
|
reject(err);
|
|
});
|
|
});
|
|
},
|
|
changeRecurrence(context, recurrence) {
|
|
return new Promise((resolve, reject) => {
|
|
setRecurrence(context.state.reminderID, recurrence).then(() => {
|
|
context.commit('setRecurrence', recurrence);
|
|
resolve();
|
|
}).catch((err) => {
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|
|
}
|
|
};
|