import {NextFunction, Request, Response} from "express"; import {Error, ErrorCodes} from "../../common/entities/Error"; import {Utils} from "../../common/Utils"; import {Message} from "../../common/entities/Message"; import {SharingDTO} from "../../common/entities/SharingDTO"; export class RenderingMWs { public static renderResult(req: Request, res: Response, next: NextFunction) { if (!req.resultPipe) return next(); return RenderingMWs.renderMessage(res, req.resultPipe); } public static renderSessionUser(req: Request, res: Response, next: NextFunction) { if (!(req.session.user)) { return next(new Error(ErrorCodes.GENERAL_ERROR, "User not exists")); } const user = Utils.clone(req.session.user); delete user.password; RenderingMWs.renderMessage(res, user); } public static renderSharing(req: Request, res: Response, next: NextFunction) { if (!req.resultPipe) return next(); const sharing = Utils.clone(req.resultPipe); delete sharing.password; RenderingMWs.renderMessage(res, sharing); } public static renderFile(req: Request, res: Response, next: NextFunction) { if (!req.resultPipe) return next(); return res.sendFile(req.resultPipe); } public static renderOK(req: Request, res: Response, next: NextFunction) { let message = new Message(null, "ok"); res.json(message); } public static renderError(err: any, req: Request, res: Response, next: NextFunction): any { if (err instanceof Error) { let message = new Message(err, null); return res.json(message); } return next(err); } protected static renderMessage(res: Response, content: T) { let message = new Message(null, content); res.json(message); } }