import { dataSource } from "../../../data-source"; import { salutation } from "../../../entity/settings/salutation"; import DatabaseActionException from "../../../exceptions/databaseActionException"; import InternalException from "../../../exceptions/internalException"; import { CreateSalutationCommand, DeleteSalutationCommand, UpdateSalutationCommand } from "./salutationCommand"; export default abstract class SalutationCommandHandler { /** * @description create salutation * @param {CreateSalutationCommand} createSalutation * @returns {Promise<number>} */ static async create(createSalutation: CreateSalutationCommand): Promise<number> { return await dataSource .createQueryBuilder() .insert() .into(salutation) .values({ salutation: createSalutation.salutation, }) .execute() .then((result) => { return result.identifiers[0].id; }) .catch((err) => { throw new DatabaseActionException("CREATE", "salutation", err); }); } /** * @description update salutation * @param {UpdateSalutationCommand} updateSalutation * @returns {Promise<void>} */ static async update(updateSalutation: UpdateSalutationCommand): Promise<void> { return await dataSource .createQueryBuilder() .update(salutation) .set({ salutation: updateSalutation.salutation, }) .where("id = :id", { id: updateSalutation.id }) .execute() .then(() => {}) .catch((err) => { throw new DatabaseActionException("UPDATE", "salutation", err); }); } /** * @description delete salutation * @param {DeleteSalutationCommand} deleteSalutation * @returns {Promise<void>} */ static async delete(deleteSalutation: DeleteSalutationCommand): Promise<void> { return await dataSource .createQueryBuilder() .delete() .from(salutation) .where("id = :id", { id: deleteSalutation.id }) .execute() .then(() => {}) .catch((err) => { throw new DatabaseActionException("DELETE", "salutation", err); }); } }