import { dataSource } from "../../../data-source"; import { membershipStatus } from "../../../entity/settings/membershipStatus"; import DatabaseActionException from "../../../exceptions/databaseActionException"; import InternalException from "../../../exceptions/internalException"; import { CreateMembershipStatusCommand, DeleteMembershipStatusCommand, UpdateMembershipStatusCommand, } from "./membershipStatusCommand"; export default abstract class MembershipStatusCommandHandler { /** * @description create membershipStatus * @param {CreateMembershipStatusCommand} createMembershipStatus * @returns {Promise} */ static async create(createMembershipStatus: CreateMembershipStatusCommand): Promise { return await dataSource .createQueryBuilder() .insert() .into(membershipStatus) .values({ status: createMembershipStatus.status, }) .execute() .then((result) => { return result.identifiers[0].id; }) .catch((err) => { throw new DatabaseActionException("CREATING", "membershipStatus", err); }); } /** * @description update membershipStatus * @param {UpdateMembershipStatusCommand} updateMembershipStatus * @returns {Promise} */ static async update(updateMembershipStatus: UpdateMembershipStatusCommand): Promise { return await dataSource .createQueryBuilder() .update(membershipStatus) .set({ status: updateMembershipStatus.status, }) .where("id = :id", { id: updateMembershipStatus.id }) .execute() .then(() => {}) .catch((err) => { throw new DatabaseActionException("UPDATE", "membershipStatus", err); }); } /** * @description delete membershipStatus * @param {DeleteMembershipStatusCommand} deleteMembershipStatus * @returns {Promise} */ static async delete(deleteMembershipStatus: DeleteMembershipStatusCommand): Promise { return await dataSource .createQueryBuilder() .delete() .from(membershipStatus) .where("id = :id", { id: deleteMembershipStatus.id }) .execute() .then(() => {}) .catch((err) => { throw new DatabaseActionException("DELETE", "membershipStatus", err); }); } }