ff-admin-server/src/controller/admin/templateController.ts

96 lines
2.8 KiB
TypeScript
Raw Normal View History

2024-12-22 10:29:42 +01:00
import { Request, Response } from "express";
import TemplateService from "../../service/templateService";
import TemplateFactory from "../../factory/admin/template";
import { CreateTemplateCommand, DeleteTemplateCommand, UpdateTemplateCommand } from "../../command/templateCommand";
import TemplateCommandHandler from "../../command/templateCommandHandler";
/**
* @description get all templates
* @param req {Request} Express req object
* @param res {Response} Express res object
* @returns {Promise<*>}
*/
export async function getAllTemplates(req: Request, res: Response): Promise<any> {
let templates = await TemplateService.getAll();
res.json(TemplateFactory.mapToBase(templates));
}
/**
* @description get template by id
* @param req {Request} Express req object
* @param res {Response} Express res object
* @returns {Promise<*>}
*/
export async function getTemplateById(req: Request, res: Response): Promise<any> {
const id = parseInt(req.params.id);
let template = await TemplateService.getById(id);
res.json(TemplateFactory.mapToSingle(template));
}
/**
* @description create new template
* @param req {Request} Express req object
* @param res {Response} Express res object
* @returns {Promise<*>}
*/
export async function createTemplate(req: Request, res: Response): Promise<any> {
const template = req.body.template;
const description = req.body.description;
let createTemplate: CreateTemplateCommand = {
template: template,
description: description,
};
let id = await TemplateCommandHandler.create(createTemplate);
res.status(200).send(id);
}
/**
* @description update template
* @param req {Request} Express req object
* @param res {Response} Express res object
* @returns {Promise<*>}
*/
export async function updateTemplate(req: Request, res: Response): Promise<any> {
const id = parseInt(req.params.id);
const template = req.body.template;
const description = req.body.description;
const design = req.body.design;
const headerHTML = req.body.headerHTML;
const bodyHTML = req.body.bodyHTML;
const footerHTML = req.body.footerHTML;
let updateTemplate: UpdateTemplateCommand = {
id: id,
template: template,
description: description,
design: design,
headerHTML: headerHTML,
bodyHTML: bodyHTML,
footerHTML: footerHTML,
};
await TemplateCommandHandler.update(updateTemplate);
res.sendStatus(204);
}
/**
* @description delete template
* @param req {Request} Express req object
* @param res {Response} Express res object
* @returns {Promise<*>}
*/
export async function deleteTemplate(req: Request, res: Response): Promise<any> {
const id = parseInt(req.params.id);
let deleteTemplate: DeleteTemplateCommand = {
id: id,
};
await TemplateCommandHandler.delete(deleteTemplate);
res.sendStatus(204);
}