Skip to content
Snippets Groups Projects
Select Git revision
  • ac643c85efd999cd5a3f2d972415e3c185f47b49
  • master default protected
2 results

fmpi_generic.h

Blame
  • GlobalHelper.ts 1.42 KiB
    import express          from 'express';
    import GitlabRepository from '../shared/types/Gitlab/GitlabRepository';
    import logger           from '../shared/logging/WinstonLogger';
    import GitlabManager         from '../managers/GitlabManager';
    import axios, { AxiosError } from 'axios';
    import { StatusCodes }       from 'http-status-codes';
    import DojoStatusCode   from '../shared/types/Dojo/DojoStatusCode';
    import SharedConfig     from '../shared/config/SharedConfig';
    import * as https from 'https';
    
    
    class GlobalHelper {
        async repositoryCreationError(message: string, error: unknown, req: express.Request, res: express.Response, gitlabError: DojoStatusCode, internalError: DojoStatusCode, repositoryToRemove?: GitlabRepository): Promise<void> {
            logger.error(message);
            logger.error(error);
    
            try {
                if ( repositoryToRemove ) {
                    await GitlabManager.deleteRepository(repositoryToRemove.id);
                }
            } catch ( error ) {
                logger.error('Repository deletion error');
                logger.error(error);
            }
    
            if ( error instanceof AxiosError ) {
                return req.session.sendResponse(res, StatusCodes.INTERNAL_SERVER_ERROR, {}, `Unknown gitlab error: ${ message }`, gitlabError);
            }
    
            return req.session.sendResponse(res, StatusCodes.INTERNAL_SERVER_ERROR, {}, `Unknown error: ${ message }`, internalError);
        }
    }
    
    
    export default new GlobalHelper();