UNPKG

@openinc/parse-server-opendash

Version:
40 lines (39 loc) 1.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.saveProject = saveProject; const types_1 = require("../../../types"); async function saveProject(ticket, project, fetchOptions) { const current = await getCurrent(ticket); const changed = current?.get("project")?.id !== project; if (!changed) return current; // check if ticket already has a project assigned // if so, remove the ticket from the old project const prevProject = await ticket.get("project")?.fetch(fetchOptions); if (prevProject && prevProject.id !== project) { prevProject.relation("tickets").remove(ticket); prevProject.save(null, fetchOptions); } const projectObj = await new Parse.Query(types_1.Maintenance_Project) .equalTo("objectId", project) .first(fetchOptions); const ticketProjectObject = new types_1.Maintenance_Ticket_Project({ ticket, project: projectObj, tenant: ticket.get("tenant"), user: ticket.get("user"), }); await ticketProjectObject.save(null, fetchOptions); ticket.set("project", projectObj); await ticket.save(null, fetchOptions); if (projectObj) { projectObj.relation("tickets").add(ticket); await projectObj.save(null, fetchOptions); } } async function getCurrent(ticket) { return await new Parse.Query(types_1.Maintenance_Ticket_Project) .descending("createdAt") .equalTo("ticket", ticket) .first({ useMasterKey: true }); }