import { dataSource } from "../../../data-source"; import { newsletter } from "../../../entity/club/newsletter/newsletter"; import DatabaseActionException from "../../../exceptions/databaseActionException"; import InternalException from "../../../exceptions/internalException"; export default abstract class NewsletterService { /** * @description get all newsletters * @returns {Promise<[Array, number]>} */ static async getAll(offset: number = 0, count: number = 25): Promise<[Array, number]> { return await dataSource .getRepository(newsletter) .createQueryBuilder("newsletter") .offset(offset) .limit(count) .getManyAndCount() .then((res) => { return res; }) .catch((err) => { throw new DatabaseActionException("SELECT", "newsletter", err); }); } /** * @description get newsletter by id * @returns {Promise} */ static async getById(id: number): Promise { return await dataSource .getRepository(newsletter) .createQueryBuilder("newsletter") .leftJoinAndSelect("newsletter.recipientsByQuery", "query") .where("newsletter.id = :id", { id: id }) .getOneOrFail() .then((res) => { return res; }) .catch((err) => { throw new DatabaseActionException("SELECT", "newsletter", err); }); } }