Skip to content

Commit 154a67c

Browse files
committed
fix deleteMany callback is not a function. Create async versions of functions
1 parent 7f5409f commit 154a67c

3 files changed

Lines changed: 22 additions & 11 deletions

File tree

lib/attachment-storage.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,24 @@ class AttachmentStorage {
5252
return this.storage.update(ids, count, magic, callback);
5353
}
5454

55+
async deleteManyAsync(ids, magic) {
56+
const deletePromises = ids.map(id => this.deleteAsync(id, magic));
57+
await Promise.all(deletePromises);
58+
return true;
59+
}
60+
61+
async deleteAsync(id, magic) {
62+
return new Promise((resolve, reject) => {
63+
this.storage.delete(id, magic, (err, result) => {
64+
if (err) {
65+
reject(err);
66+
} else {
67+
resolve(result);
68+
}
69+
});
70+
});
71+
}
72+
5573
delete(id, magic, callback) {
5674
return this.storage.delete(id, magic, callback);
5775
}

lib/handlers/on-copy.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ async function copyHandler(server, messageHandler, connection, mailbox, update,
289289
key => prepared.mimeTree.attachmentMap[key]
290290
);
291291

292-
messageHandler.attachmentStorage.deleteMany(attachmentIds, maildata.magic);
292+
messageHandler.attachmentStorage.deleteMany(attachmentIds, maildata.magic, () => {});
293293

294294
if (err) {
295295
return reject(err);

lib/message-handler.js

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ class MessageHandler {
310310

311311
// with err, with attachments
312312
try {
313-
await this.attachmentStorage.deleteMany(attachmentIds, maildata.magic);
313+
await this.attachmentStorage.deleteManyAsync(attachmentIds, maildata.magic);
314314
} catch {
315315
// throw original error
316316
throw err;
@@ -855,14 +855,7 @@ class MessageHandler {
855855

856856
if (attachmentIds.length) {
857857
try {
858-
await new Promise((resolve, reject) => {
859-
this.attachmentStorage.deleteMany(attachmentIds, messageData.magic, err => {
860-
if (err) {
861-
return reject(err);
862-
}
863-
resolve();
864-
});
865-
});
858+
await this.attachmentStorage.deleteManyAsync(attachmentIds, messageData.magic);
866859
} catch (err) {
867860
log.error('attachdel', err);
868861
}
@@ -1277,7 +1270,7 @@ class MessageHandler {
12771270
return reject(err);
12781271
}
12791272

1280-
await this.attachmentStorage.deleteMany(attachmentIds, maildata.magic);
1273+
await this.attachmentStorage.deleteManyAsync(attachmentIds, maildata.magic);
12811274
return reject(err); // reject from inner promise
12821275
}
12831276

0 commit comments

Comments
 (0)