diff --git a/packages/isomorphic-core/src/hook-transaction-log.js b/packages/isomorphic-core/src/hook-transaction-log.js index bf16c0419..6ba66b771 100644 --- a/packages/isomorphic-core/src/hook-transaction-log.js +++ b/packages/isomorphic-core/src/hook-transaction-log.js @@ -19,12 +19,12 @@ module.exports = (db, sequelize, {only, onCreatedTransaction} = {}) => { name = 'metadata'; } - if (only && !only.includes(name)) { + if ((only && !only.includes(name)) || isTransaction($modelOptions)) { return; } const changedFields = Object.keys(_changed) - if ((isTransaction($modelOptions) || changedFields.length === 0 || allIgnoredFields(changedFields))) { + if (event !== 'delete' && (changedFields.length === 0 || allIgnoredFields(changedFields))) { return; } @@ -50,5 +50,5 @@ module.exports = (db, sequelize, {only, onCreatedTransaction} = {}) => { // NOTE: Hooking UPSERT requires Sequelize 4.x. We're // on version 3 right now, but leaving this here for when we upgrade. sequelize.addHook("afterUpsert", transactionLogger("modify")) - sequelize.addHook("afterDelete", transactionLogger("delete")) + sequelize.addHook("afterDestroy", transactionLogger("delete")) } diff --git a/packages/local-sync/src/local-sync-worker/syncback_tasks/create-category.imap.js b/packages/local-sync/src/local-sync-worker/syncback_tasks/create-category.imap.js index 6b6f907ab..2b5a773a7 100644 --- a/packages/local-sync/src/local-sync-worker/syncback_tasks/create-category.imap.js +++ b/packages/local-sync/src/local-sync-worker/syncback_tasks/create-category.imap.js @@ -12,7 +12,7 @@ class CreateCategoryIMAP extends SyncbackTask { async run(db, imap) { const {objectId, displayName} = this.syncbackRequestObject().props await imap.addBox(displayName) - return {categoryId: objectId} + return {categoryServerId: objectId} } } module.exports = CreateCategoryIMAP diff --git a/packages/local-sync/src/local-sync-worker/syncback_tasks/delete-folder.imap.js b/packages/local-sync/src/local-sync-worker/syncback_tasks/delete-folder.imap.js index 2771aff61..78ae4b2cf 100644 --- a/packages/local-sync/src/local-sync-worker/syncback_tasks/delete-folder.imap.js +++ b/packages/local-sync/src/local-sync-worker/syncback_tasks/delete-folder.imap.js @@ -12,6 +12,10 @@ class DeleteFolderIMAP extends SyncbackTask { async run(db, imap) { const folderId = this.syncbackRequestObject().props.folderId const folder = await db.Folder.findById(folderId) + if (!folder) { + // Nothing to delete! + return null; + } return imap.delBox(folder.name); } } diff --git a/packages/local-sync/src/local-sync-worker/syncback_tasks/delete-label.imap.js b/packages/local-sync/src/local-sync-worker/syncback_tasks/delete-label.imap.js index a269e0f11..92628647c 100644 --- a/packages/local-sync/src/local-sync-worker/syncback_tasks/delete-label.imap.js +++ b/packages/local-sync/src/local-sync-worker/syncback_tasks/delete-label.imap.js @@ -12,6 +12,10 @@ class DeleteLabelIMAP extends SyncbackTask { async run(db, imap) { const labelId = this.syncbackRequestObject().props.labelId const label = await db.Label.findById(labelId) + if (!label) { + // Nothing to delete! + return null; + } return imap.delBox(label.name); } } diff --git a/packages/local-sync/src/local-sync-worker/syncback_tasks/rename-label.imap.js b/packages/local-sync/src/local-sync-worker/syncback_tasks/rename-label.imap.js index c5ca7448d..a036477b1 100644 --- a/packages/local-sync/src/local-sync-worker/syncback_tasks/rename-label.imap.js +++ b/packages/local-sync/src/local-sync-worker/syncback_tasks/rename-label.imap.js @@ -12,8 +12,8 @@ class RenameLabelIMAP extends SyncbackTask { async run(db, imap) { const labelId = this.syncbackRequestObject().props.labelId const newLabelName = this.syncbackRequestObject().props.displayName - const folder = await db.Label.findById(labelId) - return imap.renameBox(folder.name, newLabelName); + const label = await db.Label.findById(labelId) + return imap.renameBox(label.name, newLabelName); } } module.exports = RenameLabelIMAP