import { dataSource } from "../../../data-source"; import { protocolDecision } from "../../../entity/club/protocol/protocolDecision"; import DatabaseActionException from "../../../exceptions/databaseActionException"; import InternalException from "../../../exceptions/internalException"; import ProtocolDecisionService from "../../../service/club/protocol/protocolDecisionService"; import { SynchronizeProtocolDecisionCommand } from "./protocolDecisionCommand"; export default abstract class ProtocolDecisionCommandHandler { /** * @description create protocolDecision * @param {number} protocolId * @returns {Promise} */ static async create(protocolId: number): Promise { let count = await ProtocolDecisionService.getInstanceCount(protocolId); return await dataSource .createQueryBuilder() .insert() .into(protocolDecision) .values({ topic: "", context: "", sort: count, protocolId, }) .execute() .then((result) => { return result.identifiers[0].id; }) .catch((err) => { throw new DatabaseActionException("CREATE", "protocolDecision", err); }); } /** * @description sync protocolDecision * @param {Array} syncProtocolDecisions * @returns {Promise} */ static async sync(syncProtocolDecisions: Array): Promise { return await dataSource .createQueryBuilder() .insert() .into(protocolDecision) .values(syncProtocolDecisions) .orUpdate(["topic", "context", "sort"], ["id"]) .execute() .then(() => {}) .catch((err) => { throw new DatabaseActionException("SYNC", "protocolDecision", err); }); } }