Mailspring/internal_packages/thread-snooze/lib/snooze-store.js
Juan Tejada 76bda1dbe4 feat(snooze/send-later): Add snooze and send later plugins
Summary:
- Add initial version of snooze and send later plugins
- Tests are missing since this will probably heavily change before we are done with them

Test Plan: - TODO

Reviewers: drew, bengotow, evan

Reviewed By: bengotow, evan

Differential Revision: https://phab.nylas.com/D2578
2016-02-18 10:06:21 -08:00

40 lines
1 KiB
JavaScript

/** @babel */
import {Actions, NylasAPI, AccountStore} from 'nylas-exports';
import {moveThreadsToSnooze} from './snooze-category-helpers';
import {PLUGIN_ID, PLUGIN_NAME} from './snooze-constants';
import SnoozeActions from './snooze-actions';
class SnoozeStore {
constructor(pluginId = PLUGIN_ID) {
this.pluginId = pluginId
this.unsubscribe = SnoozeActions.snoozeThreads.listen(this.onSnoozeThreads)
}
onSnoozeThreads = (threads, snoozeDate)=> {
const accounts = AccountStore.accountsForItems(threads)
const promises = accounts.map((acc)=> {
return NylasAPI.authPlugin(this.pluginId, PLUGIN_NAME, acc)
})
Promise.all(promises)
.then(()=> {
return moveThreadsToSnooze(threads)
})
.then((updatedThreads)=> {
Actions.setMetadata(updatedThreads, this.pluginId, {snoozeDate})
})
.catch((error)=> {
console.error(error)
NylasEnv.showErrorDialog(error.message)
})
};
deactivate() {
this.unsubscribe()
}
}
export default SnoozeStore;