import SessionManager from '../managers/SessionManager.js';
import GitlabManager  from '../managers/GitlabManager.js';


class AccessesHelper {
    async checkStudent(testGitlab: boolean = false): Promise<boolean> {
        const sessionResult = await SessionManager.testSession(true, [ 'student' ]);

        if ( !sessionResult ) {
            return false;
        }

        if ( testGitlab ) {
            return (await GitlabManager.testToken(true)).every(result => result);
        } else {
            return true;
        }
    }

    async checkTeachingStaff(testGitlab: boolean = false): Promise<boolean> {
        const sessionResult = await SessionManager.testSession(true, [ 'teachingStaff' ]);

        if ( !sessionResult || !sessionResult.teachingStaff ) {
            return false;
        }

        if ( testGitlab ) {
            return (await GitlabManager.testToken(true)).every(result => result);
        } else {
            return true;
        }
    }
}


export default new AccessesHelper();