ff-admin-server/src/service/templateUsageService.ts

46 lines
1.5 KiB
TypeScript

import { dataSource } from "../data-source";
import { templateUsage } from "../entity/templateUsage";
import InternalException from "../exceptions/internalException";
export default abstract class TemplateUsageService {
/**
* @description get all templateUsages
* @returns {Promise<Array<templateUsage>>}
*/
static async getAll(): Promise<Array<templateUsage>> {
return await dataSource
.getRepository(templateUsage)
.createQueryBuilder("templateUsage")
.leftJoinAndSelect("templateUsage.header", "headerTemplate")
.leftJoinAndSelect("templateUsage.body", "bodyTemplate")
.leftJoinAndSelect("templateUsage.footer", "footerTemplate")
.getMany()
.then((res) => {
return res;
})
.catch((err) => {
throw new InternalException("templates not found", err);
});
}
/**
* @description get template by scope
* @returns {Promise<templateUsage>}
*/
static async getByScope(scope: string): Promise<templateUsage | null> {
return await dataSource
.getRepository(templateUsage)
.createQueryBuilder("templateUsage")
.leftJoinAndSelect("templateUsage.header", "headerTemplate")
.leftJoinAndSelect("templateUsage.body", "bodyTemplate")
.leftJoinAndSelect("templateUsage.footer", "footerTemplate")
.where("templateUsage.scope = :scope", { scope: scope })
.getOneOrFail()
.then((res) => {
return res;
})
.catch((err): null => {
return null;
});
}
}