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.
ngcp-csc-ui/src/store/reminder.js

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);
});
});
}
}
};