@openinc/parse-server-opendash
Version:
Parse Server Cloud Code for open.INC Stack.
79 lines (78 loc) • 3.67 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.init = init;
const __1 = require("..");
const openservice_1 = require("../features/openservice");
const openinc_openservice_save_ticket_data_1 = require("../functions/openinc-openservice-save-ticket-data");
const openinc_openservice_ticket_data_1 = require("../functions/openinc-openservice-ticket-data");
const types_1 = require("../types");
const TRANSLATION_TITLE = openservice_1.OpenserviceMessageTranslationKeys.TICKETLOG.PROJECT.TITLE;
const TRANSLATION_CONTENT = openservice_1.OpenserviceMessageTranslationKeys.TICKETLOG.PROJECT.CONTENT;
const TRANSLATION_TITLE_MACHINELOG = openservice_1.OpenserviceMessageTranslationKeys.MACHINELOG.PROJECT.TITLE;
const TRANSLATION_CONTENT_MACHINELOG = openservice_1.OpenserviceMessageTranslationKeys.MACHINELOG.PROJECT.CONTENT;
async function init() {
(0, __1.beforeSaveHook)(types_1.Maintenance_Ticket_Project, async (request) => {
const { object, original, user } = request;
await (0, __1.defaultHandler)(request);
await (0, __1.defaultAclHandler)(request);
});
(0, __1.afterSaveHook)(types_1.Maintenance_Ticket_Project, async (request) => {
const { object, original, user } = request;
const fullObj = await object.fetchWithInclude(["ticket", "project"], {
useMasterKey: true,
});
const previous = await new Parse.Query(types_1.Maintenance_Ticket_Project)
.includeAll()
.equalTo("ticket", fullObj.get("ticket"))
.notEqualTo("objectId", fullObj.id)
.descending("createdAt")
.first({ useMasterKey: true });
await createMessageLog(fullObj, previous, user);
});
}
async function createMessageLog(object, previous, user) {
new types_1.Maintenance_Message({
referencedObjectId: object.get("ticket")?.id,
classname: object.get("ticket")?.className,
title: TRANSLATION_TITLE,
content: TRANSLATION_CONTENT,
user,
tenant: user.get("tenant"),
data: {
origin: {
id: object.id,
classname: object.className,
},
translation: {
username: (0, openinc_openservice_save_ticket_data_1.getUsername)(user),
ticket: object.get("ticket")?.get("title") ?? "Nicht vorhanden",
new: object.get("project")?.get("name") ?? "Nicht vorhanden",
},
type: "system",
},
}).save(null, { useMasterKey: true });
const source = (await (0, openinc_openservice_ticket_data_1.getTicketSource)(object.get("ticket")))?.get("source");
if (source) {
new types_1.Maintenance_Message({
referencedObjectId: source?.id,
classname: source.className,
title: TRANSLATION_TITLE_MACHINELOG,
content: TRANSLATION_CONTENT_MACHINELOG,
user,
tenant: user.get("tenant"),
data: {
origin: {
id: object.get("ticket")?.id,
classname: object.get("ticket")?.className,
},
translation: {
username: (0, openinc_openservice_save_ticket_data_1.getUsername)(user),
ticket: object.get("ticket")?.get("title") ?? "Nicht vorhanden",
new: object.get("project")?.get("name") ?? "Nicht vorhanden",
old: previous?.get("project")?.get("name") ?? "Nicht vorhanden",
},
type: "system",
},
}).save(null, { useMasterKey: true });
}
}