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