Initial commit
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
const notifications = {
|
||||
namespaced: true,
|
||||
state: {
|
||||
isFetching: false,
|
||||
isErrored: false,
|
||||
error: {},
|
||||
notifications: []
|
||||
},
|
||||
computed: {},
|
||||
getters: {},
|
||||
mutations: {
|
||||
setNotifications (state, notifications) {
|
||||
state.notifications = notifications;
|
||||
state.isFetching = false;
|
||||
state.isErrored = false;
|
||||
state.error = [];
|
||||
},
|
||||
|
||||
setRequestError (state, error) {
|
||||
state.isFetching = false;
|
||||
state.isErrored = true;
|
||||
state.error = error;
|
||||
state.notifications = [];
|
||||
},
|
||||
|
||||
setFetchingState (state) {
|
||||
state.isFetching = true;
|
||||
state.isErrored = false;
|
||||
state.error = [];
|
||||
state.notifications = [];
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
fetchNotifications (context, options) {
|
||||
context.commit('setFetchingState');
|
||||
context.rootState.client.getConfig(function (err, _, data) {
|
||||
if (err) {
|
||||
context.commit('setRequestError', err);
|
||||
return;
|
||||
}
|
||||
|
||||
context.commit('setNotifications', data.unfiltered_organization_notifications);
|
||||
context.dispatch('markNotificationsAsRead', options);
|
||||
});
|
||||
},
|
||||
markNotificationsAsRead (context, options) {
|
||||
const nowString = new Date().toISOString();
|
||||
context.state.notifications.forEach(notification => {
|
||||
const { userId, apiKey } = options;
|
||||
if (!notification.read_at) {
|
||||
const notificationCopy = { ...notification, read_at: nowString };
|
||||
context.rootState.client.updateNotification(userId, apiKey, notificationCopy, () => {});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export default notifications;
|
||||
Reference in New Issue
Block a user