@openinc/parse-server-opendash
Version:
Parse Server Cloud Code for open.INC Stack.
51 lines (50 loc) • 2.74 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.updateTicketDescription = updateTicketDescription;
exports.initTicketClass = initTicketClass;
const catchError_1 = require("../../../helper/catchError");
const types_1 = require("../../../types");
async function updateTicketDescription() {
while (true) {
const query = new Parse.Query(types_1.Maintenance_Ticket).doesNotExist("description");
query.limit(1000);
const tickets = await query.find({ useMasterKey: true });
if (tickets.length === 0)
break;
const allCreationMessages = await new Parse.Query(types_1.Maintenance_Message)
.equalTo("classname", types_1.Maintenance_Ticket.className)
.equalTo("title", "maintenance:ticket.create.database.subject.1")
.containedIn("referencedObjectId", tickets.map((ticket) => ticket.id))
.limit(1000000)
.find({ useMasterKey: true });
for (const ticket of tickets) {
const foundMessage = allCreationMessages.find((message) => message.get("referencedObjectId") === ticket.id);
ticket.set("description", foundMessage?.get("content") ?? " ");
}
await Parse.Object.saveAll(tickets, { useMasterKey: true });
}
}
async function initTicketClass() {
// Query all of Maintenance_Ticket and find all of Maintenance_Priority sort by createdAt in descending order
// get the objectid of the first object in the array and save it in the latestPriority field of the Maintenance_Ticket object
console.log("Maintenance_Ticket init: Check and save latestPriority");
const [ticketError, ticketResults] = await (0, catchError_1.catchError)(new Parse.Query(types_1.Maintenance_Ticket).each(async (ticket) => {
if (!ticket.get("latestPriorityValue")) {
const [priorityError, priorityResult] = await (0, catchError_1.catchError)(new Parse.Query(types_1.Maintenance_Priority)
.equalTo("ticket", ticket)
.descending("createdAt")
.first({ useMasterKey: true }));
if (priorityError) {
console.error("Maintenance_Priority error", priorityError);
return;
}
if (priorityResult === undefined) {
console.log("Maintenance_Ticket init: Check and save latestPriority: No priority found for ticket", ticket.id);
return;
}
ticket.set("latestPriorityValue", priorityResult.get("value"));
await ticket.save(null, { useMasterKey: true });
}
}, { useMasterKey: true }));
console.log("Maintenance_Ticket init: Check and save latestPriority done");
}