From 19ab12aab627aa60b0b9edf910fcb044acc307f1 Mon Sep 17 00:00:00 2001 From: Akhil Meka Date: Mon, 1 Sep 2025 18:45:42 +0530 Subject: [PATCH] feat: custom unique values for taggedUsers field, set the latest taggedUser to assigendTo field --- src/note/note.service.ts | 9 ++++----- src/unique.ts | 12 ++++++++++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/note/note.service.ts b/src/note/note.service.ts index a77a613..f9afdf0 100644 --- a/src/note/note.service.ts +++ b/src/note/note.service.ts @@ -43,24 +43,23 @@ export async function createNote( const model = modelMap[resourceType]; const obj = await model.findOne({ pid: resourceId }); - console.log(obj.taggedUsers); - if (!obj.taggedUsers) { await model.updateOne( { pid: resourceId }, - { $set: { taggedUsers: taggedUsers } } + { $set: { taggedUsers: taggedUsers, assignedTo: userIds[0] } } ); } else { for (const user of taggedUsers) { const userIndex = obj.taggedUsers.findIndex( (item) => item.userId == user.userId ); - console.log(userIndex); if (userIndex != -1) obj.taggedUsers[userIndex].taggedAt = new Date(); else obj.taggedUsers.push(user); } - obj.markModified("taggedUsers"); + obj.assignedTo = userIds[0]; + + obj.markModified("taggedUsers", "assignedTo"); await obj.save(); } diff --git a/src/unique.ts b/src/unique.ts index 67525e0..a5a1571 100644 --- a/src/unique.ts +++ b/src/unique.ts @@ -2,6 +2,7 @@ import { orgModel } from "./organization/organization.schema"; import { userModel } from "./user/user.schema"; import { AuthenticatedUser } from "./auth"; import { modelMap } from "./utils/tags"; +import { listUsers } from "./user/user.service"; type Collection = | "users" @@ -32,6 +33,17 @@ export async function getUniqueFields( return changeKeys.map((item) => item._id); } + if (field === "taggedUsers") { + const users = await listUsers(user); + const usersObj = {}; + + for (const user of users) { + usersObj[user.id] = user.name; + } + + return usersObj; + } + let values = await model.distinct(field, { tenantId: user.tenantId }); let matchedValues = [];