import { dataSource } from "../../../data-source"; import { qualification } from "../../../entity/configuration/qualification"; import DatabaseActionException from "../../../exceptions/databaseActionException"; import InternalException from "../../../exceptions/internalException"; import { CreateQualificationCommand, DeleteQualificationCommand, UpdateQualificationCommand, } from "./qualificationCommand"; export default abstract class QualificationCommandHandler { /** * @description create qualification * @param {CreateQualificationCommand} createQualification * @returns {Promise} */ static async create(createQualification: CreateQualificationCommand): Promise { return await dataSource .createQueryBuilder() .insert() .into(qualification) .values({ qualification: createQualification.qualification, description: createQualification.description, }) .execute() .then((result) => { return result.identifiers[0].id; }) .catch((err) => { throw new DatabaseActionException("CREATE", "qualification", err); }); } /** * @description update qualification * @param {UpdateQualificationCommand} updateQualification * @returns {Promise} */ static async update(updateQualification: UpdateQualificationCommand): Promise { return await dataSource .createQueryBuilder() .update(qualification) .set({ qualification: updateQualification.qualification, description: updateQualification.description, }) .where("id = :id", { id: updateQualification.id }) .execute() .then(() => {}) .catch((err) => { throw new DatabaseActionException("UPDATE", "qualification", err); }); } /** * @description delete qualification * @param {DeleteQualificationCommand} deleteQualification * @returns {Promise} */ static async delete(deleteQualification: DeleteQualificationCommand): Promise { return await dataSource .createQueryBuilder() .delete() .from(qualification) .where("id = :id", { id: deleteQualification.id }) .execute() .then(() => {}) .catch((err) => { throw new DatabaseActionException("DELETE", "qualification", err); }); } }