@openinc/parse-server-opendash
Version:
Parse Server Cloud Code for open.INC Stack.
39 lines (38 loc) • 1.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.saveState = saveState;
exports.saveDefaultState = saveDefaultState;
const types_1 = require("../../../types");
async function saveState(ticket, state, fetchOptions) {
const current = await getCurrent(ticket);
const changed = current?.get("state")?.id !== state;
if (!changed)
return current;
return await new types_1.Maintenance_Ticket_Kanban_State({
ticket,
state: new types_1.Maintenance_Kanban_State({ objectId: state }), // pointer
tenant: ticket.get("tenant"),
user: ticket.get("user"),
}).save(null, fetchOptions);
}
async function saveDefaultState(ticket, fetchOptions) {
const newState = await new Parse.Query(types_1.Maintenance_Kanban_State)
.equalTo("isInbox", true)
.first(fetchOptions);
if (!newState)
return;
const state = new types_1.Maintenance_Ticket_Kanban_State({
ticket,
state: newState,
tenant: ticket.get("tenant"),
user: ticket.get("user"),
});
await state.save(null, fetchOptions);
}
async function getCurrent(ticket) {
return await new Parse.Query(types_1.Maintenance_Ticket_Kanban_State_Current)
.descending("createdAt")
.equalTo("ticket", ticket)
.includeAll()
.first({ useMasterKey: true });
}