import { DoctorSchedule } from "entity"; import { SelectQueryBuilder } from "typeorm"; import CommonHelper from "../helpers/common"; import { OrmHelper } from "../helpers/orm"; export class DoctorScheduleModel { static async list(filter = {}): Promise> { const repo = OrmHelper.DB.getRepository(DoctorSchedule); let whereAttr: string[] = []; let whereVal: any = {}; if (filter && Object.keys(filter).length > 0) { const filterResult = CommonHelper.handleQueryFilter(filter); whereAttr = [...whereAttr, ...filterResult.whereAttr]; whereVal = { ...whereVal, ...filterResult.whereVal }; } var query = repo.createQueryBuilder("DoctorSchedule") .leftJoinAndSelect("DoctorSchedule.doctor", "Doctor") .leftJoinAndSelect("DoctorSchedule.room", "Room"); if (whereAttr.length != 0) { query = query.where(whereAttr.join(" and "), whereVal); } return query; } }