Added MarkThreadAsUnread task

This commit is contained in:
Halla Moore 2016-06-29 17:23:18 -07:00
parent d3fd671ff6
commit ef11508b38
3 changed files with 28 additions and 0 deletions

View file

@ -184,6 +184,13 @@ module.exports = (server) => {
threadId: request.params.id,
},
})
} else if (payload.unread === true) {
createSyncbackRequest(request, reply, {
type: "MarkThreadAsUnread",
props: {
threadId: request.params.id,
},
})
}
},
});

View file

@ -10,6 +10,8 @@ class SyncbackTaskFactory {
Task = require('./syncback_tasks/move-to-folder.imap'); break;
case "MarkThreadAsRead":
Task = require('./syncback_tasks/mark-thread-as-read.imap'); break;
case "MarkThreadAsUnread":
Task = require('./syncback_tasks/mark-thread-as-unread.imap'); break;
default:
throw new Error(`Invalid Task Type: ${syncbackRequest.type}`)
}

View file

@ -0,0 +1,19 @@
const SyncbackTask = require('./syncback-task')
const TaskHelpers = require('./task-helpers')
class MarkThreadAsUnread extends SyncbackTask {
description() {
return `MarkThreadAsUnread`;
}
run(db, imap) {
const threadId = this.syncbackRequestObject().props.threadId
const eachMsg = ({message, box}) => {
return box.delFlags(message.categoryUID, 'SEEN')
}
return TaskHelpers.forEachMessageInThread({threadId, db, imap, callback: eachMsg})
}
}
module.exports = MarkThreadAsUnread;