feat: custom unique values for taggedUsers field, set the latest taggedUser to assigendTo field
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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 = [];
|
||||
|
||||
Reference in New Issue
Block a user