import { Express }        from 'express-serve-static-core';
import express            from 'express';
import RoutesManager      from '../express/RoutesManager';
import SecurityMiddleware from '../middlewares/SecurityMiddleware';
import SecurityCheckType  from '../types/SecurityCheckType';
import GitlabManager      from '../managers/GitlabManager';


class GitlabRoutes implements RoutesManager {
    registerOnBackend(backend: Express) {
        backend.get('/gitlab/project/:idOrNamespace/checkTemplateAccess', SecurityMiddleware.check(true, SecurityCheckType.TEACHING_STAFF), this.checkTemplateAccess);
    }

    private async checkTemplateAccess(req: express.Request, res: express.Response) {
        const gitlabProjectIdOrNamespace: string = req.params.gitlabProjectIdOrNamespace;

        const idOrNamespace: string = req.params.idOrNamespace;

        return res.status(await GitlabManager.checkTemplateAccess(idOrNamespace, req)).send();
    }
}


export default new GitlabRoutes();