add notes on update
This commit is contained in:
@@ -50,7 +50,7 @@ export async function updateNotificationHandler(
|
||||
const updatedNotification = await updateNotification(
|
||||
notifId,
|
||||
input,
|
||||
req.user.tenantId
|
||||
req.user
|
||||
);
|
||||
|
||||
if (!updatedNotification)
|
||||
|
||||
@@ -10,6 +10,8 @@ import {
|
||||
notificationModel,
|
||||
UpdateNotificationInput,
|
||||
} from "./notification.schema";
|
||||
import { getUser } from "../user/user.service";
|
||||
import { createNote } from "../note/note.service";
|
||||
|
||||
export async function createNotification(
|
||||
input: CreateNotificationInput,
|
||||
@@ -30,11 +32,11 @@ export async function createNotification(
|
||||
export async function updateNotification(
|
||||
notifId: string,
|
||||
input: UpdateNotificationInput,
|
||||
tenantId: string
|
||||
user: AuthenticatedUser
|
||||
) {
|
||||
return await notificationModel
|
||||
const updateNotificationResult = await notificationModel
|
||||
.findOneAndUpdate(
|
||||
{ $and: [{ tenantId: tenantId }, { pid: notifId }] },
|
||||
{ $and: [{ tenantId: user.tenantId }, { pid: notifId }] },
|
||||
{
|
||||
...input,
|
||||
updatedAt: new Date(),
|
||||
@@ -42,6 +44,35 @@ export async function updateNotification(
|
||||
{ new: true }
|
||||
)
|
||||
.populate({ path: "assignedTo", select: "pid name avatar" });
|
||||
|
||||
if (updateNotificationResult) {
|
||||
for (const key in input) {
|
||||
if (["status", "assignedTo"].includes(key)) {
|
||||
let msg = "";
|
||||
|
||||
if (input[key] === null) {
|
||||
msg = `Cleared ${key}`;
|
||||
} else if (key == "assignedTo") {
|
||||
const user = await getUser(input.assignedTo);
|
||||
if (!user) continue;
|
||||
|
||||
msg = `Assigned to ${user.firstName + " " + user.lastName}`;
|
||||
} else {
|
||||
msg = `Updated ${key} to '${input[key]}'`;
|
||||
}
|
||||
|
||||
await createNote(
|
||||
{
|
||||
content: msg,
|
||||
},
|
||||
notifId,
|
||||
user
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return updateNotificationResult;
|
||||
}
|
||||
|
||||
export async function listNotifications(
|
||||
|
||||
@@ -11,6 +11,8 @@ import { permitPipeline } from "../utils/pipeline";
|
||||
import { AuthenticatedUser } from "../auth";
|
||||
import mongoose from "mongoose";
|
||||
import { noteModel } from "../note/note.schema";
|
||||
import { getUser } from "../user/user.service";
|
||||
import { createNote } from "../note/note.service";
|
||||
|
||||
export async function createPermit(
|
||||
input: CreatePermitInput,
|
||||
@@ -181,15 +183,27 @@ export async function updatePermit(
|
||||
|
||||
if (updatePermitResult) {
|
||||
for (const key in input) {
|
||||
if (["manualStatus", "utility"].includes(key)) {
|
||||
await noteModel.create({
|
||||
tenantId: user.tenantId,
|
||||
pid: generateId(),
|
||||
resourceId: permitId,
|
||||
content: `Updated ${key} to '${input[key]}'`,
|
||||
createdAt: new Date(),
|
||||
createdBy: user.userId,
|
||||
});
|
||||
if (["manualStatus", "utility", "assignedTo"].includes(key)) {
|
||||
let msg = "";
|
||||
|
||||
if (input[key] === null) {
|
||||
msg = `Cleared ${key}`;
|
||||
} else if (key == "assignedTo") {
|
||||
const user = await getUser(input.assignedTo);
|
||||
if (!user) continue;
|
||||
|
||||
msg = `Assigned to ${user.firstName + " " + user.lastName}`;
|
||||
} else {
|
||||
msg = `Updated ${key} to '${input[key]}'`;
|
||||
}
|
||||
|
||||
await createNote(
|
||||
{
|
||||
content: msg,
|
||||
},
|
||||
permitId,
|
||||
user
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import {
|
||||
processedModel,
|
||||
UpdateProcessedInput,
|
||||
} from "./processed.schema";
|
||||
import { createNote } from "../note/note.service";
|
||||
|
||||
export async function getProcessedPermit(permitId: String, tenantId: String) {
|
||||
return await processedModel.findOne({
|
||||
@@ -20,7 +21,7 @@ export async function updateProcessed(
|
||||
permitId: string,
|
||||
user: AuthenticatedUser
|
||||
) {
|
||||
return await processedModel
|
||||
const updateProcessedResult = await processedModel
|
||||
.findOneAndUpdate(
|
||||
{
|
||||
$and: [{ tenantId: user.tenantId }, { pid: permitId }],
|
||||
@@ -32,6 +33,30 @@ export async function updateProcessed(
|
||||
.populate({ path: "client", select: "pid name avatar" })
|
||||
.populate({ path: "assignedTo", select: "pid name avatar" })
|
||||
.populate({ path: "createdBy", select: "pid name avatar" });
|
||||
|
||||
if (updateProcessedResult) {
|
||||
for (const key in input) {
|
||||
if (["manualStatus", "utility"].includes(key)) {
|
||||
let msg = "";
|
||||
|
||||
if (input[key] === null) {
|
||||
msg = `Cleared ${key}`;
|
||||
} else {
|
||||
msg = `Updated ${key} to '${input[key]}'`;
|
||||
}
|
||||
|
||||
await createNote(
|
||||
{
|
||||
content: msg,
|
||||
},
|
||||
permitId,
|
||||
user
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return updateProcessedResult;
|
||||
}
|
||||
}
|
||||
|
||||
export async function listProcessedPermits(
|
||||
|
||||
Reference in New Issue
Block a user