+
+async function listAbuseMessages (req: express.Request, res: express.Response) {
+ const abuse = res.locals.abuse
+
+ const resultList = await AbuseMessageModel.listForApi(abuse.id)
+
+ return res.json(getFormattedObjects(resultList.data, resultList.total))
+}
+
+async function addAbuseMessage (req: express.Request, res: express.Response) {
+ const abuse = res.locals.abuse
+ const user = res.locals.oauth.token.user
+
+ const abuseMessage = await AbuseMessageModel.create({
+ message: req.body.message,
+ byModerator: abuse.reporterAccountId !== user.Account.id,
+ accountId: user.Account.id,
+ abuseId: abuse.id
+ })
+
+ AbuseModel.loadFull(abuse.id)
+ .then(abuseFull => Notifier.Instance.notifyOnAbuseMessage(abuseFull, abuseMessage))
+ .catch(err => logger.error('Cannot notify on new abuse message', { err }))
+
+ return res.json({
+ abuseMessage: {
+ id: abuseMessage.id
+ }
+ })
+}
+
+async function deleteAbuseMessage (req: express.Request, res: express.Response) {
+ const abuseMessage = res.locals.abuseMessage
+
+ await sequelizeTypescript.transaction(t => {
+ return abuseMessage.destroy({ transaction: t })
+ })
+
+ return res.status(HttpStatusCode.NO_CONTENT_204).end()
+}