mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-10-01 17:06:23 +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
5 changed files with 14 additions and 6 deletions
|
@ -19,12 +19,12 @@ module.exports = (db, sequelize, {only, onCreatedTransaction} = {}) => {
|
||||||
name = 'metadata';
|
name = 'metadata';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (only && !only.includes(name)) {
|
if ((only && !only.includes(name)) || isTransaction($modelOptions)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const changedFields = Object.keys(_changed)
|
const changedFields = Object.keys(_changed)
|
||||||
if ((isTransaction($modelOptions) || changedFields.length === 0 || allIgnoredFields(changedFields))) {
|
if (event !== 'delete' && (changedFields.length === 0 || allIgnoredFields(changedFields))) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,5 +50,5 @@ module.exports = (db, sequelize, {only, onCreatedTransaction} = {}) => {
|
||||||
// NOTE: Hooking UPSERT requires Sequelize 4.x. We're
|
// NOTE: Hooking UPSERT requires Sequelize 4.x. We're
|
||||||
// on version 3 right now, but leaving this here for when we upgrade.
|
// on version 3 right now, but leaving this here for when we upgrade.
|
||||||
sequelize.addHook("afterUpsert", transactionLogger("modify"))
|
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) {
|
async run(db, imap) {
|
||||||
const {objectId, displayName} = this.syncbackRequestObject().props
|
const {objectId, displayName} = this.syncbackRequestObject().props
|
||||||
await imap.addBox(displayName)
|
await imap.addBox(displayName)
|
||||||
return {categoryId: objectId}
|
return {categoryServerId: objectId}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
module.exports = CreateCategoryIMAP
|
module.exports = CreateCategoryIMAP
|
||||||
|
|
|
@ -12,6 +12,10 @@ class DeleteFolderIMAP extends SyncbackTask {
|
||||||
async run(db, imap) {
|
async run(db, imap) {
|
||||||
const folderId = this.syncbackRequestObject().props.folderId
|
const folderId = this.syncbackRequestObject().props.folderId
|
||||||
const folder = await db.Folder.findById(folderId)
|
const folder = await db.Folder.findById(folderId)
|
||||||
|
if (!folder) {
|
||||||
|
// Nothing to delete!
|
||||||
|
return null;
|
||||||
|
}
|
||||||
return imap.delBox(folder.name);
|
return imap.delBox(folder.name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,10 @@ class DeleteLabelIMAP extends SyncbackTask {
|
||||||
async run(db, imap) {
|
async run(db, imap) {
|
||||||
const labelId = this.syncbackRequestObject().props.labelId
|
const labelId = this.syncbackRequestObject().props.labelId
|
||||||
const label = await db.Label.findById(labelId)
|
const label = await db.Label.findById(labelId)
|
||||||
|
if (!label) {
|
||||||
|
// Nothing to delete!
|
||||||
|
return null;
|
||||||
|
}
|
||||||
return imap.delBox(label.name);
|
return imap.delBox(label.name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,8 +12,8 @@ class RenameLabelIMAP extends SyncbackTask {
|
||||||
async run(db, imap) {
|
async run(db, imap) {
|
||||||
const labelId = this.syncbackRequestObject().props.labelId
|
const labelId = this.syncbackRequestObject().props.labelId
|
||||||
const newLabelName = this.syncbackRequestObject().props.displayName
|
const newLabelName = this.syncbackRequestObject().props.displayName
|
||||||
const folder = await db.Label.findById(labelId)
|
const label = await db.Label.findById(labelId)
|
||||||
return imap.renameBox(folder.name, newLabelName);
|
return imap.renameBox(label.name, newLabelName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
module.exports = RenameLabelIMAP
|
module.exports = RenameLabelIMAP
|
||||||
|
|
Loading…
Add table
Reference in a new issue