From ae54192ed65aab992a082e7e229c801c193c91d9 Mon Sep 17 00:00:00 2001 From: Jackie Luo Date: Thu, 23 Jun 2016 10:33:38 -0700 Subject: [PATCH] Update threading and fix typo --- .../processors/threading.js | 18 ++++++++++++------ packages/nylas-sync/app.js | 2 +- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/packages/nylas-message-processor/processors/threading.js b/packages/nylas-message-processor/processors/threading.js index d6be145a7..ddcb18df5 100644 --- a/packages/nylas-message-processor/processors/threading.js +++ b/packages/nylas-message-processor/processors/threading.js @@ -21,11 +21,8 @@ function addMessageToThread({db, accountId, message}) { function matchThread({db, accountId, message}) { const {Thread} = db - - // TODO: Add once we have some test data with this header - /* - if (message.headers['in-reply-to']) { - return getThreadFromHeader() // Doesn't exist yet + if (message.headers.references) { + return getThreadFromReferences() .then((thread) => { if (thread) { return thread @@ -36,13 +33,22 @@ function matchThread({db, accountId, message}) { }) }) } - */ + return Thread.create({ subject: message.subject, cleanedSubject: cleanSubject(message.subject), }) } +function getThreadFromReferences({db, references}) { + const {Message} = db + const messageId = references.split()[references.length - 1] + return Message.find({where: {messageId: messageId}}) + .then((message) => { + return message.getThread() + }) +} + function cleanSubject(subject) { if (subject === null) { return "" diff --git a/packages/nylas-sync/app.js b/packages/nylas-sync/app.js index dc6692444..5d7319245 100644 --- a/packages/nylas-sync/app.js +++ b/packages/nylas-sync/app.js @@ -10,7 +10,7 @@ DatabaseConnector.forShared().then((db) => { Account.findAll().then((accounts) => { if (accounts.length === 0) { console.log(`Couldn't find any accounts to sync. Run this CURL command to auth one!`) - console.log(`curl -X POST -H "Content-Type: application/json" -d '{"email":"inboxapptest2@fastmail.fm", "name":"Ben Gotow", "provider":"imap", "settings":{"imap_username":"inboxapptest1@fastmail.fm","imap_host":"mail.amessagingengine.com","imap_port":993,"smtp_host":"mail.messagingengine.com","smtp_port":0,"smtp_username":"inboxapptest1@fastmail.fm", "smtp_password":"trar2e","imap_password":"trar2e","ssl_required":true}}' "http://localhost:5100/auth?client_id=123"`) + console.log(`curl -X POST -H "Content-Type: application/json" -d '{"email":"inboxapptest2@fastmail.fm", "name":"Ben Gotow", "provider":"imap", "settings":{"imap_username":"inboxapptest1@fastmail.fm","imap_host":"mail.messagingengine.com","imap_port":993,"smtp_host":"mail.messagingengine.com","smtp_port":0,"smtp_username":"inboxapptest1@fastmail.fm", "smtp_password":"trar2e","imap_password":"trar2e","ssl_required":true}}' "http://localhost:5100/auth?client_id=123"`) } manager.ensureAccountIDsInRedis(accounts.map(a => a.id)).then(() => { manager.start();