mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-09-22 08:16:09 +08:00
[local-sync, iso-core] Fix operations on Categories
Summary: - Ensure delete deltas make it through to N1 - Don't fail if we can't find a category that needs to be deleted Test Plan: local Reviewers: juan, evan Reviewed By: evan Differential Revision: https://phab.nylas.com/D3593
This commit is contained in:
parent
4030d7cb3b
commit
c7f8796409
|
@ -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"))
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue