95 lines
2.8 KiB
TypeScript
95 lines
2.8 KiB
TypeScript
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);
|
|
}
|