feat: convert src/messaging/* to async/await (#7778)

* feat: src/messaging/create.js, #7743

* feat: src/messaging/data.js, #7743

* feat: src/messaging/delete.js, #7743

* feat: src/messaging/edit.js, index.js, #7743

* fix: added in missing awaits

* feat: wrapped up src/messaging/* rewrite

* refactor: messaging delete/restore similar blocks of code
This commit is contained in:
Julian Lam
2019-07-22 11:18:13 -04:00
committed by GitHub
parent fcf8fd51cb
commit 756a717eb8
8 changed files with 541 additions and 813 deletions

View File

@@ -1,31 +1,16 @@
'use strict';
var async = require('async');
module.exports = function (Messaging) {
Messaging.deleteMessage = function (mid, roomId, callback) {
async.waterfall([
async.apply(Messaging.getMessageField, mid, 'deleted'),
function (deleted, next) {
if (deleted) {
return next(new Error('[[error:chat-deleted-already]]'));
}
Messaging.deleteMessage = async mid => await doDeleteRestore(mid, 1);
Messaging.restoreMessage = async mid => await doDeleteRestore(mid, 0);
Messaging.setMessageField(mid, 'deleted', 1, next);
},
], callback);
};
async function doDeleteRestore(mid, state) {
const field = state ? 'deleted' : 'restored';
const cur = await Messaging.getMessageField(mid, 'deleted');
if (cur === state) {
throw new Error('[[error:chat-' + field + '-already]]');
}
Messaging.restoreMessage = function (mid, roomId, callback) {
async.waterfall([
async.apply(Messaging.getMessageField, mid, 'deleted'),
function (deleted, next) {
if (!deleted) {
return next(new Error('[[error:chat-restored-already]]'));
}
Messaging.setMessageField(mid, 'deleted', 0, next);
},
], callback);
};
return await Messaging.setMessageField(mid, 'deleted', state);
}
};