import {promises as fs} from "graceful-fs";

import ErrorTypes from "../utils/errorTypes";
import Logger from "../logger";
import * as Resources from "../utils/resources";
import {Request, Response} from "express";

const indexHtml = __dirname + '/../../client/index.html';

export function render (req: Request, res: Response): void {
    const data = Resources.getData(req);

    fs.readFile(indexHtml, 'utf8')
        .then(body =>
            Resources.successHtml(
                res,
                body.replace(
                    /<body/,
                    '<script>window.__nodeToken = \''+ data.token + '\';</script><body'
                )
            ))
        .catch(err => {
            Logger.tag('frontend').error('Could not read file: ', indexHtml, err);
            return Resources.error(res, {data: 'Internal error.', type: ErrorTypes.internalError});
        })
}