/* eslint-disable @typescript-eslint/no-explicit-any */
import express, { Response } from 'express';
import path from 'path';
import { HttpStatus } from '@utils';

import { catchAsync } from '@utils';
import { ensureLoggedIn, ensureLoggedInOrApiKey, ensureLoggedInOrShareToken } from '@middlewares/ensureLogin/ensureLoggedIn';
import { ExtRequest } from '../../../types/ExtRequest';
import { Midleware } from '../../../types/Midleware';
import { baseDir } from '@lib/baseDir';

const router = express.Router();

const staticIndex = async (req: ExtRequest, res: Response) => {
    res.status(HttpStatus.OK)
        .sendFile(path.normalize(path.join(baseDir, `./mvc/views/react/index2/index.html`)));
}

router.get(
    '',
    ensureLoggedInOrShareToken(),
    catchAsync(staticIndex) as Midleware
);

// eslint-disable-next-line custom/check-route-registration
router.get(
    '/checks-list',
    ensureLoggedInOrApiKey(),
    catchAsync(staticIndex) as Midleware
);

// eslint-disable-next-line custom/check-route-registration
router.get(
    '/baselines',
    ensureLoggedIn(),
    catchAsync(staticIndex) as Midleware
);

export default router;
