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