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 model = modelMap[resourceType];
|
||||||
const obj = await model.findOne({ pid: resourceId });
|
const obj = await model.findOne({ pid: resourceId });
|
||||||
|
|
||||||
console.log(obj.taggedUsers);
|
|
||||||
|
|
||||||
if (!obj.taggedUsers) {
|
if (!obj.taggedUsers) {
|
||||||
await model.updateOne(
|
await model.updateOne(
|
||||||
{ pid: resourceId },
|
{ pid: resourceId },
|
||||||
{ $set: { taggedUsers: taggedUsers } }
|
{ $set: { taggedUsers: taggedUsers, assignedTo: userIds[0] } }
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
for (const user of taggedUsers) {
|
for (const user of taggedUsers) {
|
||||||
const userIndex = obj.taggedUsers.findIndex(
|
const userIndex = obj.taggedUsers.findIndex(
|
||||||
(item) => item.userId == user.userId
|
(item) => item.userId == user.userId
|
||||||
);
|
);
|
||||||
console.log(userIndex);
|
|
||||||
if (userIndex != -1) obj.taggedUsers[userIndex].taggedAt = new Date();
|
if (userIndex != -1) obj.taggedUsers[userIndex].taggedAt = new Date();
|
||||||
else obj.taggedUsers.push(user);
|
else obj.taggedUsers.push(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
obj.markModified("taggedUsers");
|
obj.assignedTo = userIds[0];
|
||||||
|
|
||||||
|
obj.markModified("taggedUsers", "assignedTo");
|
||||||
await obj.save();
|
await obj.save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import { orgModel } from "./organization/organization.schema";
|
|||||||
import { userModel } from "./user/user.schema";
|
import { userModel } from "./user/user.schema";
|
||||||
import { AuthenticatedUser } from "./auth";
|
import { AuthenticatedUser } from "./auth";
|
||||||
import { modelMap } from "./utils/tags";
|
import { modelMap } from "./utils/tags";
|
||||||
|
import { listUsers } from "./user/user.service";
|
||||||
|
|
||||||
type Collection =
|
type Collection =
|
||||||
| "users"
|
| "users"
|
||||||
@@ -32,6 +33,17 @@ export async function getUniqueFields(
|
|||||||
return changeKeys.map((item) => item._id);
|
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 values = await model.distinct(field, { tenantId: user.tenantId });
|
||||||
|
|
||||||
let matchedValues = [];
|
let matchedValues = [];
|
||||||
|
|||||||
Reference in New Issue
Block a user