refactor Inbox-mongodb requests

This commit is contained in:
negue
2018-11-08 22:04:55 +01:00
parent 2c250bfcd9
commit 8f2435c37c
4 changed files with 15 additions and 18 deletions

View File

@@ -31,17 +31,17 @@ const FLAG_REPORT_EMAILS = nconf.get('FLAG_REPORT_EMAIL').split(',').map((email)
/** /**
* @apiDefine GroupIdRequired * @apiDefine GroupIdRequired
* @apiError (404) {badRequest} groupIdRequired A group ID is required * @apiError (400) {badRequest} groupIdRequired A group ID is required
*/ */
/** /**
* @apiDefine ChatIdRequired * @apiDefine ChatIdRequired
* @apiError (404) {badRequest} chatIdRequired A chat ID is required * @apiError (400) {badRequest} chatIdRequired A chat ID is required
*/ */
/** /**
* @apiDefine MessageIdRequired * @apiDefine MessageIdRequired
* @apiError (404) {badRequest} messageIdRequired A message ID is required * @apiError (400) {badRequest} messageIdRequired A message ID is required
*/ */
let api = {}; let api = {};

View File

@@ -23,7 +23,7 @@ let api = {};
* *
* @apiUse MessageNotFound * @apiUse MessageNotFound
* @apiUse MessageIdRequired * @apiUse MessageIdRequired
* @apiError (404) {NotFound} messageGroupChatFlagAlreadyReported The message has already been flagged * @apiError (400) {BadRequest} messageGroupChatFlagAlreadyReported The message has already been flagged
*/ */
api.flagPrivateMessage = { api.flagPrivateMessage = {
method: 'POST', method: 'POST',

View File

@@ -3,13 +3,12 @@ import { model as User } from '../../models/user';
import ChatReporter from './chatReporter'; import ChatReporter from './chatReporter';
import { import {
NotFound, BadRequest,
} from '../errors'; } from '../errors';
import { getGroupUrl, sendTxn } from '../email'; import { getGroupUrl, sendTxn } from '../email';
import slack from '../slack'; import slack from '../slack';
import apiError from '../apiError'; import apiError from '../apiError';
import _find from 'lodash/find';
import * as inboxLib from '../inbox'; import * as inboxLib from '../inbox';
const FLAG_REPORT_EMAILS = nconf.get('FLAG_REPORT_EMAIL').split(',').map((email) => { const FLAG_REPORT_EMAILS = nconf.get('FLAG_REPORT_EMAIL').split(',').map((email) => {
@@ -34,10 +33,8 @@ export default class InboxChatReporter extends ChatReporter {
this.inboxUser = await User.findOne({_id: this.req.query.userId}); this.inboxUser = await User.findOne({_id: this.req.query.userId});
} }
const messages = await inboxLib.getUserInbox(this.inboxUser); const message = await inboxLib.getUserInboxMessage(this.inboxUser, this.req.params.messageId);
if (!message) throw new BadRequest(this.res.t('messageGroupChatNotFound'));
const message = _find(messages, (m) => m.id === this.req.params.messageId);
if (!message) throw new NotFound(this.res.t('messageGroupChatNotFound'));
const userComment = this.req.body.comment; const userComment = this.req.body.comment;
@@ -81,7 +78,7 @@ export default class InboxChatReporter extends ChatReporter {
if (!message.flags) message.flags = {}; if (!message.flags) message.flags = {};
// TODO fix error type // TODO fix error type
if (message.flags[this.user._id] && !this.user.contributor.admin) { if (message.flags[this.user._id] && !this.user.contributor.admin) {
throw new NotFound(this.res.t('messageGroupChatFlagAlreadyReported')); throw new BadRequest(this.res.t('messageGroupChatFlagAlreadyReported'));
} }
return this.updateMessageAndSave(message, (m) => { return this.updateMessageAndSave(message, (m) => {

View File

@@ -19,6 +19,10 @@ export async function getUserInbox (user, asArray = true) {
} }
} }
export async function getUserInboxMessage (user, messageId) {
return Inbox.findOne({ownerId: user._id, _id: messageId}).exec();
}
export async function deleteMessage (user, messageId) { export async function deleteMessage (user, messageId) {
if (user.inbox.messages[messageId]) { // compatibility if (user.inbox.messages[messageId]) { // compatibility
delete user.inbox.messages[messageId]; delete user.inbox.messages[messageId];
@@ -47,11 +51,7 @@ export async function clearPMs (user) {
} }
export async function updateMessage (message) { export async function updateMessage (message) {
const messagesInDb = await Inbox await Inbox.update({
.find({id: message.id}) id: message._id,
.exec(); }, message).exec();
const messageInDb = messagesInDb[0];
await messageInDb.update(message);
} }