33 lines
1.2 KiB
TypeScript
33 lines
1.2 KiB
TypeScript
import { newsletter } from "../../../../entity/club/newsletter/newsletter";
|
|
import { NewsletterViewModel } from "../../../../viewmodel/admin/club/newsletter/newsletter.models";
|
|
import QueryStoreFactory from "../../configuration/queryStore";
|
|
|
|
export default abstract class NewsletterFactory {
|
|
/**
|
|
* @description map record to newsletter
|
|
* @param {newsletter} record
|
|
* @returns {NewsletterViewModel}
|
|
*/
|
|
public static mapToSingle(record: newsletter): NewsletterViewModel {
|
|
return {
|
|
id: record.id,
|
|
title: record.title,
|
|
description: record.description,
|
|
newsletterTitle: record.newsletterTitle,
|
|
newsletterText: record.newsletterText,
|
|
newsletterSignatur: record.newsletterSignatur,
|
|
isSent: record.isSent,
|
|
recipientsByQueryId: record?.recipientsByQuery ? record.recipientsByQuery.id : null,
|
|
recipientsByQuery: record?.recipientsByQuery ? QueryStoreFactory.mapToSingle(record.recipientsByQuery) : null,
|
|
};
|
|
}
|
|
|
|
/**
|
|
* @description map records to newsletter
|
|
* @param {Array<newsletter>} records
|
|
* @returns {Array<NewsletterViewModel>}
|
|
*/
|
|
public static mapToBase(records: Array<newsletter>): Array<NewsletterViewModel> {
|
|
return records.map((r) => this.mapToSingle(r));
|
|
}
|
|
}
|