diff --git a/functions/src/commons/business/createSystemMessagesOnCommonAboutEdited.ts b/functions/src/commons/business/createSystemMessagesOnCommonAboutEdited.ts index d406d7a27..b98aa7e39 100644 --- a/functions/src/commons/business/createSystemMessagesOnCommonAboutEdited.ts +++ b/functions/src/commons/business/createSystemMessagesOnCommonAboutEdited.ts @@ -51,7 +51,6 @@ export const createSystemMessagesOnCommonAboutEdited = async ( ]; await discussionMessageDb.addDiscussionMessage({ - commonId: common.id, discussionId: discussion.id, ownerName: "System", ownerAvatar: "", diff --git a/functions/src/commons/business/createSystemMessagesOnCommonCreated.ts b/functions/src/commons/business/createSystemMessagesOnCommonCreated.ts index 630cc1cd9..a160ab299 100644 --- a/functions/src/commons/business/createSystemMessagesOnCommonCreated.ts +++ b/functions/src/commons/business/createSystemMessagesOnCommonCreated.ts @@ -46,7 +46,6 @@ export const createSystemMessagesOnCommonCreated = async (commonId: string) => { ]; await discussionMessageDb.addDiscussionMessage({ - commonId: common.id, discussionId: discussion.id, ownerName: "System", ownerAvatar: "", @@ -90,7 +89,6 @@ export const createSystemMessagesOnCommonCreated = async (commonId: string) => { ]; await discussionMessageDb.addDiscussionMessage({ - commonId: parentCommon.id, discussionId: parentGeneralDiscussion.docs[0].id, ownerName: "System", ownerAvatar: "", diff --git a/functions/src/commons/business/createSystemMessagesOnCommonMemberAdded.ts b/functions/src/commons/business/createSystemMessagesOnCommonMemberAdded.ts index 04c53f49c..edcd8a677 100644 --- a/functions/src/commons/business/createSystemMessagesOnCommonMemberAdded.ts +++ b/functions/src/commons/business/createSystemMessagesOnCommonMemberAdded.ts @@ -49,7 +49,6 @@ export const createSystemMessagesOnCommonMemberAdded = async ( ]; await discussionMessageDb.addDiscussionMessage({ - commonId: common.id, discussionId: discussion.id, ownerName: "System", ownerAvatar: "", diff --git a/functions/src/commons/business/createSystemMessagesOnFeedItemCreated.ts b/functions/src/commons/business/createSystemMessagesOnFeedItemCreated.ts index 6bd1c9390..2d0c41944 100644 --- a/functions/src/commons/business/createSystemMessagesOnFeedItemCreated.ts +++ b/functions/src/commons/business/createSystemMessagesOnFeedItemCreated.ts @@ -93,7 +93,6 @@ export const createSystemMessagesOnFeedItemCreated = async ( ]; await discussionMessageDb.addDiscussionMessage({ - commonId: common.id, discussionId: discussion.id, ownerName: "System", ownerAvatar: "", diff --git a/functions/src/commons/eventHandlers/onCommonDeactivated.ts b/functions/src/commons/eventHandlers/onCommonDeactivated.ts index d9bf2ba88..d47302031 100644 --- a/functions/src/commons/eventHandlers/onCommonDeactivated.ts +++ b/functions/src/commons/eventHandlers/onCommonDeactivated.ts @@ -104,7 +104,6 @@ async function createProjectDeletedSystemMessage( ]; await discussionMessageDb.addDiscussionMessage({ - commonId: parentCommonId, discussionId: discussion.id, ownerName: "System", ownerAvatar: "", diff --git a/functions/src/commons/eventHandlers/onFeedItemDeleted.ts b/functions/src/commons/eventHandlers/onFeedItemDeleted.ts index 249b0f381..a3f79c68c 100644 --- a/functions/src/commons/eventHandlers/onFeedItemDeleted.ts +++ b/functions/src/commons/eventHandlers/onFeedItemDeleted.ts @@ -97,7 +97,6 @@ export const onFeedItemDeleted = async ( ]; await discussionMessageDb.addDiscussionMessage({ - commonId, discussionId: discussion.id, ownerName: "System", ownerAvatar: "", diff --git a/functions/src/discussion/business/discussionMessage/setFollowForMessageUsers.ts b/functions/src/discussion/business/discussionMessage/setFollowForMessageUsers.ts index 959c4e5b8..322ab1dd4 100644 --- a/functions/src/discussion/business/discussionMessage/setFollowForMessageUsers.ts +++ b/functions/src/discussion/business/discussionMessage/setFollowForMessageUsers.ts @@ -59,7 +59,7 @@ export const setFollowForMessageUsers = async ( feedItemId: feedObject.id, emailSubscribed: true, pushSubscribed: true, - commonId: discussionMessage.commonId, + commonId, }, userId, dbConfig diff --git a/functions/src/discussion/controllers/discussionMessage/update.ts b/functions/src/discussion/controllers/discussionMessage/update.ts index 1f2d6b307..be7b652c5 100644 --- a/functions/src/discussion/controllers/discussionMessage/update.ts +++ b/functions/src/discussion/controllers/discussionMessage/update.ts @@ -16,16 +16,14 @@ export const updateDiscussionMessage = async ( const validatedPayload = await updateDiscussionMessageDataValidationScheme.validate(req.body); - const { commonId, discussionId } = - await discussionMessageDb.getDiscussionMessage( - validatedPayload.discussionMessageId, - true - ); + const { discussionId } = await discussionMessageDb.getDiscussionMessage( + validatedPayload.discussionMessageId, + true + ); return await updateDiscussionMessageService( validatedPayload, - discussionId, - commonId + discussionId ); }, { diff --git a/functions/src/discussion/eventHandlers/onDiscussionCreated.ts b/functions/src/discussion/eventHandlers/onDiscussionCreated.ts index 386daecfb..073dc141c 100644 --- a/functions/src/discussion/eventHandlers/onDiscussionCreated.ts +++ b/functions/src/discussion/eventHandlers/onDiscussionCreated.ts @@ -91,7 +91,6 @@ async function createInitialMessage( ]; await discussionMessageDb.addDiscussionMessage( { - commonId: discussion.commonId, discussionId: discussion.id, ownerName: "System", ownerAvatar: "", diff --git a/functions/src/discussion/services/discussionMessage/create.ts b/functions/src/discussion/services/discussionMessage/create.ts index b96c2ac1f..320135bc9 100644 --- a/functions/src/discussion/services/discussionMessage/create.ts +++ b/functions/src/discussion/services/discussionMessage/create.ts @@ -18,7 +18,6 @@ export const createDiscussionMessageService = async ( const discussionMessage = await discussionMessageDb.addDiscussionMessage({ text: payload.text ?? "", - commonId: payload.commonId, discussionId: payload.discussionId, images: payload.images, parentId: payload.parentId, diff --git a/functions/src/discussion/services/discussionMessage/update.ts b/functions/src/discussion/services/discussionMessage/update.ts index 4a817e344..f1f1cec9a 100644 --- a/functions/src/discussion/services/discussionMessage/update.ts +++ b/functions/src/discussion/services/discussionMessage/update.ts @@ -1,6 +1,5 @@ import { Timestamp } from "firebase-admin/firestore"; import { isNil } from "lodash"; -import { isCommonMember } from "../../../commons/business"; import { UpdateDiscussionMessage } from "../../../shared/schemas"; import { discussionDb, discussionMessageDb } from "../../db"; import { discussionMessageCollection } from "../../db/discussionMessage"; @@ -9,12 +8,12 @@ import { updateDiscussionMessageNotification } from "../../../notification/busin export const updateDiscussionMessageService = async ( payload: UpdateDiscussionMessage, discussionId: string, - commonId: string ) => { - if (!isNil(payload?.mentions)) - await Promise.all( - payload.mentions.map(async (uid) => isCommonMember(commonId, uid, true)) - ); + // TODO: check if user is member of common + // if (!isNil(payload?.mentions)) + // await Promise.all( + // payload.mentions.map(async (uid) => isCommonMember(commonId, uid, true)) + // ); await discussionMessageDb.updateDiscussionMessage( payload.discussionMessageId, diff --git a/functions/src/moderation/util/items.ts b/functions/src/moderation/util/items.ts index 1c14f30b5..a50f19ce1 100644 --- a/functions/src/moderation/util/items.ts +++ b/functions/src/moderation/util/items.ts @@ -21,7 +21,11 @@ export const getItemCommonId = async ( itemId, true ); - return message.commonId; + const discussion = await discussionDb.getDiscussion( + message.discussionId, + true + ); + return discussion.commonId; } throw new Error(`Unexpected type ${type}`); diff --git a/functions/src/notification/emailDefinitions/discussionMessageReported.ts b/functions/src/notification/emailDefinitions/discussionMessageReported.ts index 309a8af5c..d8c0bf508 100644 --- a/functions/src/notification/emailDefinitions/discussionMessageReported.ts +++ b/functions/src/notification/emailDefinitions/discussionMessageReported.ts @@ -1,5 +1,5 @@ import { commonsDb } from "../../commons/db/common"; -import { discussionMessageDb } from "../../discussion/db"; +import { discussionDb, discussionMessageDb } from "../../discussion/db"; import { proposalsDb } from "../../proposals/db/proposals"; import { getUserFullName } from "../../reports/utils/getUserFullName"; import { env } from "../../shared/configs"; @@ -15,14 +15,18 @@ export const discussionMessageReported = { messageId, true ); + const discussion = await discussionDb.getDiscussion( + discussionMessage.discussionId, + true + ); const commonId = - discussionMessage.commonId || + discussion.commonId || (await proposalsDb.get(discussionMessage.discussionId, true))?.data.args .commonId; - const path = discussionMessage.commonId - ? `Discussions/${commonId}/${discussionMessage.discussionId}` - : `ProposalScreen/${commonId}/${discussionMessage.discussionId}/1`; // 1 is tabIndex of chats in ProposalScreen + const path = discussion.proposalId + ? `ProposalScreen/${commonId}/${discussionMessage.discussionId}/1` // 1 is tabIndex of chats in ProposalScreen + : `Discussions/${commonId}/${discussionMessage.discussionId}`; if (!discussionMessage?.moderation?.reporter) throw new CommonError( diff --git a/functions/src/notification/emailDefinitions/messageCreated.ts b/functions/src/notification/emailDefinitions/messageCreated.ts index ffde54644..ec5a6a4a5 100644 --- a/functions/src/notification/emailDefinitions/messageCreated.ts +++ b/functions/src/notification/emailDefinitions/messageCreated.ts @@ -32,7 +32,7 @@ export const messageCreated = { discussionMessage.discussionId, false ); - const commonId = discussionMessage.commonId || proposal?.data.args.commonId; + const commonId = discussion.commonId || proposal?.data.args.commonId; if (isNil(commonId)) throw new Error("commonId not found"); @@ -41,9 +41,9 @@ export const messageCreated = { ? (await commonsDb.get(common?.directParent?.commonId, true)).name : ""; - const path = discussionMessage.commonId - ? `Discussions/${commonId}/${discussionMessage.discussionId}` - : `ProposalScreen/${commonId}/${discussionMessage.discussionId}/1`; // 1 is tabIndex of chats in ProposalScreen + const path = discussion.proposalId + ? `ProposalScreen/${commonId}/${discussionMessage.discussionId}/1` // 1 is tabIndex of chats in ProposalScreen + : `Discussions/${commonId}/${discussionMessage.discussionId}`; let reciever = undefined; diff --git a/functions/src/notification/notificationDefinitions/discussionMessageCreated.ts b/functions/src/notification/notificationDefinitions/discussionMessageCreated.ts index aa3b9fc72..ecdd3b9f0 100644 --- a/functions/src/notification/notificationDefinitions/discussionMessageCreated.ts +++ b/functions/src/notification/notificationDefinitions/discussionMessageCreated.ts @@ -58,7 +58,7 @@ export const discussionMessageCreated: NotificationDefinition = { discussionMessage.discussionId, false ); - const commonId = discussionMessage.commonId || proposal?.data.args.commonId; + const commonId = discussion.commonId || proposal?.data.args.commonId; if (isNil(commonId)) throw new Error("commonId not found"); @@ -187,40 +187,39 @@ export const discussionMessageCreated: NotificationDefinition = { discussionMessage, }: DiscussionMessageNotificationData) => { const result: NotificationUserFilter = { push: [] }; + const discussion = await discussionDb.getDiscussion( + discussionMessage.discussionId, + true + ); // Space creation message should be notified by the message in the parent common if ( discussionMessage.ownerType === DiscussionMessageOwnerType.System && discussionMessage.systemMessageType === SystemDiscussionMessageType.CommonCreated && - discussionMessage.systemMessageData.commonId === - discussionMessage.commonId && + discussionMessage.systemMessageData.commonId === discussion.commonId && discussionMessage.systemMessageData.commonType === "space" ) { return result; } - const discussionId = discussionMessage.discussionId; - const [discussion, discussionCommon, parentDiscussionMessage] = - await Promise.all([ - discussionDb.getDiscussion(discussionId, true), - commonsDb.get(discussionMessage.commonId, true), - discussionMessage.parentId - ? discussionMessageDb.getDiscussionMessage( - discussionMessage.parentId, - true - ) - : Promise.resolve(undefined), - ]); + const [discussionCommon, parentDiscussionMessage] = await Promise.all([ + commonsDb.get(discussion.commonId, true), + discussionMessage.parentId + ? discussionMessageDb.getDiscussionMessage( + discussionMessage.parentId, + true + ) + : Promise.resolve(undefined), + ]); if ( discussionMessage.ownerType === DiscussionMessageOwnerType.System && discussionMessage.systemMessageType === SystemDiscussionMessageType.FeedItemCreated && - discussionMessage.systemMessageData.commonId === - discussionMessage.commonId && + discussionMessage.systemMessageData.commonId === discussion.commonId && discussionCommon.directParent && discussion.predefinedType === DISCUSSION_PREDEFINED_TYPES.HOME && - discussionMessage.systemMessageData.feedItemType == + discussionMessage.systemMessageData.feedItemType === FeedObjectTypes.Discussion ) { const createdDiscussion = await discussionDb.getDiscussion( diff --git a/functions/src/shared/interfaces/discussions/DiscussionMessage.ts b/functions/src/shared/interfaces/discussions/DiscussionMessage.ts index 3d83ce530..a09bab38f 100644 --- a/functions/src/shared/interfaces/discussions/DiscussionMessage.ts +++ b/functions/src/shared/interfaces/discussions/DiscussionMessage.ts @@ -111,11 +111,6 @@ type UserDiscussionMessage = BaseDiscussionMessage & { }; type BaseDiscussionMessage = BaseEntity & { - /** - * ID of the common which is associated with the parent discussion of this message - */ - commonId: string; - /** * ID of the parent discussion of this message, could be a Discussion ID, or a Proposal ID */