Mailspring/packages/nylas-sync/syncback_tasks/move-to-folder.imap.js

52 lines
1.7 KiB
JavaScript
Raw Normal View History

2016-06-30 01:13:48 +08:00
const SyncbackTask = require('./syncback-task')
2016-06-30 02:44:30 +08:00
const TaskHelpers = require('./task-helpers')
2016-06-30 01:11:53 +08:00
2016-06-30 01:13:48 +08:00
class MoveToFolderIMAP extends SyncbackTask {
2016-06-29 05:07:54 +08:00
description() {
return `MoveToFolder`;
}
run(db, imap) {
2016-06-30 02:44:30 +08:00
const threadId = this.syncbackRequestObject().props.threadId
const toFolderId = this.syncbackRequestObject().props.folderId
const eachMsg = ({message}) => {
return imap.move(message.messageId, toFolderId)
2016-06-30 02:44:30 +08:00
}
return TaskHelpers.forEachMessageInThread({threadId, db, imap, callback: eachMsg})
2016-06-30 02:44:30 +08:00
// for (const {message, category} of msgGenerator) {
// imap.moveAsync(messageId)
// }
// const {Category, Thread} = db;
// const threadId = this.syncbackRequestObject().props.threadId
// const toFolderId = this.syncbackRequestObject().props.folderId
//
// const thread = Thread.findById(threadId);
// const toFolder = Category.findById(toFolderId);
//
// const msgsInCategories = {};
//
// thread.getMessages((messages) => {
// for (const message of messages) {
// if (!msgsInCategories[message.CategoryId]) {
// msgsInCategories[message.CategoryId] = [message.messageId];
// } else {
// msgsInCategories.push(message.messageId);
// }
// }
// for (const categoryId of Object.keys(msgsInCategories)) {
// Category.findById(categoryId).then((category) => {
// imap.openBox(category, false);
// for (const messageId of msgsInCategories[categoryId]) {
// imap.moveAsync(messageId, toCategoryName);
// }
// imap.closeBox();
// })
// }
// })
2016-06-29 05:07:54 +08:00
}
}
module.exports = MoveToFolderIMAP