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);
|
|
|
|
}
|
|
|
|
|
2024-12-24 10:24:46 +01:00
|
|
|
/**
|
|
|
|
* @description clone template
|
|
|
|
* @param req {Request} Express req object
|
|
|
|
* @param res {Response} Express res object
|
|
|
|
* @returns {Promise<*>}
|
|
|
|
*/
|
|
|
|
export async function cloneTemplate(req: Request, res: Response): Promise<any> {
|
|
|
|
const cloneId = req.body.cloneId;
|
|
|
|
|
|
|
|
const { template, description, design, html } = await TemplateService.getById(cloneId);
|
|
|
|
|
|
|
|
let createTemplate: CreateTemplateCommand = {
|
|
|
|
template: "",
|
|
|
|
description: "",
|
|
|
|
};
|
|
|
|
let id = await TemplateCommandHandler.create(createTemplate);
|
|
|
|
|
|
|
|
let updateTemplate: UpdateTemplateCommand = {
|
|
|
|
id: id,
|
|
|
|
template: template + " - Kopie",
|
|
|
|
description: description,
|
|
|
|
design: design,
|
|
|
|
html: html,
|
|
|
|
};
|
|
|
|
await TemplateCommandHandler.update(updateTemplate);
|
|
|
|
|
|
|
|
res.status(200).send(id);
|
|
|
|
}
|
|
|
|
|
2024-12-22 10:29:42 +01:00
|
|
|
/**
|
|
|
|
* @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;
|
2024-12-22 17:29:11 +01:00
|
|
|
const html = req.body.html;
|
2024-12-22 10:29:42 +01:00
|
|
|
|
|
|
|
let updateTemplate: UpdateTemplateCommand = {
|
|
|
|
id: id,
|
|
|
|
template: template,
|
|
|
|
description: description,
|
|
|
|
design: design,
|
2024-12-22 17:29:11 +01:00
|
|
|
html: html,
|
2024-12-22 10:29:42 +01:00
|
|
|
};
|
|
|
|
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);
|
|
|
|
}
|