ff-admin-server/src/factory/admin/club/newsletter/newsletter.ts

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));
}
}