@openinc/parse-server-opendash
Version:
Parse Server Cloud Code for open.INC Stack.
40 lines (39 loc) • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.saveIssueCategory = saveIssueCategory;
exports.saveDefaultIssueCategory = saveDefaultIssueCategory;
const types_1 = require("../../../types");
async function saveIssueCategory(ticket, value, fetchOptions) {
const current = await getCurrent(ticket);
const changed = current?.get("issuecategory")?.id !== value;
if (!changed)
return current;
const issueCategory = new types_1.Maintenance_Ticket_Issuecategory({
ticket,
issuecategory: new types_1.Maintenance_Issuecategory({ objectId: value }), // pointer
tenant: ticket.get("tenant"),
user: ticket.get("user"),
});
return await issueCategory.save(null, fetchOptions);
}
async function saveDefaultIssueCategory(ticket, fetchOptions) {
const catchAll = await new Parse.Query(types_1.Maintenance_Issuecategory)
.equalTo("catchall", true)
.first(fetchOptions);
if (!catchAll)
return;
const issueCategory = new types_1.Maintenance_Ticket_Issuecategory({
ticket,
issuecategory: catchAll,
tenant: ticket.get("tenant"),
user: ticket.get("user"),
});
await issueCategory.save(null, fetchOptions);
}
async function getCurrent(ticket) {
return await new Parse.Query(types_1.Maintenance_Ticket_Issuecategory)
.descending("createdAt")
.equalTo("ticket", ticket)
.includeAll()
.first({ useMasterKey: true });
}