import { ResponsiblePartyConsent } from "entity"; import { NextFunction, Response } from "express"; import { Request } from "express-jwt"; import Joi from "joi"; import { ILogObj, Logger } from "tslog"; import { ReturnHelper } from "../helpers/express/return"; import { Language } from "../langs/lang"; import { OrmHelper } from "../helpers/orm"; import moment from "moment"; const log: Logger = new Logger({ name: "[ResponsiblePartyConsentController]", type: "pretty", }); export class ResponsiblePartyConsentController { static async body(req: Request, res: Response, next: NextFunction): Promise { /* #swagger.tags = ['Responsible Party Consent'] #swagger.security = [{ "bearerAuth": [] }] */ try { const data = await OrmHelper.DB.getRepository(ResponsiblePartyConsent) .createQueryBuilder("ResponsiblePartyConsent") .getMany(); const count_data = data.length; const current_page = 1; const total_count_data = count_data; const mapped_data = data; return ReturnHelper.successResponselist(res, 200, Language.lang.success_view, count_data, current_page, total_count_data, mapped_data); } catch (e: unknown) { log.error(e); const err = e as Error; return ReturnHelper.errorResponse(res, 400, 401, Language.lang.failed_view, err.message); } } static async create(req: Request, res: Response, next: NextFunction): Promise { /* #swagger.tags = ['Responsible Party Consent'] #swagger.security = [{ "bearerAuth": [] }] #swagger.requestBody = { required: true, content: { "application/json": { schema: { $ref: "#/components/schemas/responsiblepartyconsent" } } } } */ const queryRunner = OrmHelper.DB.createQueryRunner(); await queryRunner.startTransaction(); try { const schema = Joi.object().keys({ bodytext: Joi.string().required().label("Body Text"), }); let param: any = await schema.validateAsync(req.body); const existing = await OrmHelper.DB.getRepository(ResponsiblePartyConsent) .createQueryBuilder("ResponsiblePartyConsent") .getOne(); if (existing) { await queryRunner.rollbackTransaction(); return ReturnHelper.errorResponse(res, 400, 400, "Data already exists", "Responsible Party Consent already exists"); } let responsiblepartyconsent = new ResponsiblePartyConsent(); responsiblepartyconsent.body = param.bodytext; responsiblepartyconsent.created_by = req.auth?.data.name; responsiblepartyconsent.updated_by = req.auth?.data.name; await queryRunner.manager.save(responsiblepartyconsent); await queryRunner.commitTransaction(); return ReturnHelper.successResponseAny(res, 200, Language.lang.success_insert, responsiblepartyconsent); } catch (e: unknown) { await queryRunner.rollbackTransaction(); log.error(e); const err = e as Error; return ReturnHelper.errorResponse(res, 400, 401, Language.lang.failed_view, err.message); } finally { await queryRunner.release(); } } static async update(req: Request, res: Response, next: NextFunction): Promise { /* #swagger.tags = ['Responsible Party Consent'] #swagger.security = [{ "bearerAuth": [] }] #swagger.parameters['id'] = { in: 'path', type: 'string' } #swagger.requestBody = { required: true, content: { "application/json": { schema: { $ref: "#/components/schemas/responsiblepartyconsent" } } } } */ const queryRunner = OrmHelper.DB.createQueryRunner(); await queryRunner.startTransaction(); try { req.body.id = req.params["id"]; const schema = Joi.object().keys({ id: Joi.string().uuid().required().label("Room ID"), bodytext: Joi.string().required().label("Body Text"), }); let param: any = await schema.validateAsync(req.body); let responsiblepartyconsent = await OrmHelper.DB.getRepository(ResponsiblePartyConsent) .createQueryBuilder("Room") .where("Room.id = :id", { id: param.id }) .getOne(); if (!responsiblepartyconsent) throw { message: "Responsible Party Consent " + Language.lang.failed_not_found }; responsiblepartyconsent.body = param.bodytext; responsiblepartyconsent.updated_by = req.auth?.data.name; responsiblepartyconsent.updated_at = moment().toDate(); await queryRunner.manager.save(responsiblepartyconsent); await queryRunner.commitTransaction(); return ReturnHelper.successResponseAny(res, 200, Language.lang.success_update, responsiblepartyconsent); } catch (e: unknown) { await queryRunner.rollbackTransaction(); log.error(e); const err = e as Error; return ReturnHelper.errorResponse(res, 400, 401, Language.lang.failed_view, err.message); } finally { await queryRunner.release(); } } }