Skip to content
Snippets Groups Projects
Commit ce233a40 authored by michael.minelli's avatar michael.minelli
Browse files

Remove direct references to SharedGitlabManager

parent 76a0b6d6
No related branches found
No related tags found
No related merge requests found
Pipeline #30679 passed
import express from 'express'; import express from 'express';
import logger from '../shared/logging/WinstonLogger'; import logger from '../shared/logging/WinstonLogger';
import GitlabManager from '../managers/GitlabManager'; import GitlabManager from '../managers/GitlabManager';
import { AxiosError } from 'axios'; import { AxiosError } from 'axios';
import { StatusCodes } from 'http-status-codes'; import { StatusCodes } from 'http-status-codes';
import DojoStatusCode from '../shared/types/Dojo/DojoStatusCode'; import DojoStatusCode from '../shared/types/Dojo/DojoStatusCode';
import SharedGitlabManager from '../shared/managers/SharedGitlabManager'; import * as Gitlab from '@gitbeaker/rest';
import Config from '../config/Config';
import * as Gitlab from '@gitbeaker/rest';
class GlobalHelper { class GlobalHelper {
readonly sharedGitlabManager = new SharedGitlabManager(Config.gitlab.account.token);
async repositoryCreationError(message: string, error: unknown, req: express.Request, res: express.Response, gitlabError: DojoStatusCode, internalError: DojoStatusCode, repositoryToRemove?: Gitlab.ProjectSchema): Promise<void> { async repositoryCreationError(message: string, error: unknown, req: express.Request, res: express.Response, gitlabError: DojoStatusCode, internalError: DojoStatusCode, repositoryToRemove?: Gitlab.ProjectSchema): Promise<void> {
logger.error(message); logger.error(message);
logger.error(error); logger.error(error);
......
import { Prisma, UserRole } from '@prisma/client'; import { Prisma, UserRole } from '@prisma/client';
import LazyVal from '../../../shared/helpers/LazyVal'; import LazyVal from '../../../shared/helpers/LazyVal';
import * as Gitlab from '@gitbeaker/rest'; import * as Gitlab from '@gitbeaker/rest';
import GlobalHelper from '../../GlobalHelper'; import GitlabManager from '../../../managers/GitlabManager';
export default Prisma.defineExtension(client => { export default Prisma.defineExtension(client => {
...@@ -26,7 +26,7 @@ export default Prisma.defineExtension(client => { ...@@ -26,7 +26,7 @@ export default Prisma.defineExtension(client => {
}, },
gitlabProfile : { gitlabProfile : {
compute(user) { compute(user) {
return new LazyVal<Gitlab.UserSchema | undefined>(() => GlobalHelper.sharedGitlabManager.getUserById(user.id)); return new LazyVal<Gitlab.UserSchema | undefined>(() => GitlabManager.getUserById(user.id));
} }
} }
} }
......
...@@ -6,21 +6,20 @@ import SharedConfig ...@@ -6,21 +6,20 @@ import SharedConfig
import { CommitSchema, ExpandedUserSchema, Gitlab, MemberSchema, ProjectBadgeSchema, ProjectSchema, ReleaseSchema, RepositoryFileExpandedSchema, RepositoryFileSchema, RepositoryTreeSchema } from '@gitbeaker/rest'; import { CommitSchema, ExpandedUserSchema, Gitlab, MemberSchema, ProjectBadgeSchema, ProjectSchema, ReleaseSchema, RepositoryFileExpandedSchema, RepositoryFileSchema, RepositoryTreeSchema } from '@gitbeaker/rest';
import logger from '../shared/logging/WinstonLogger'; import logger from '../shared/logging/WinstonLogger';
import { AccessLevel, EditProjectOptions, ProjectVariableSchema, ProtectedBranchAccessLevel, ProtectedBranchSchema } from '@gitbeaker/core'; import { AccessLevel, EditProjectOptions, ProjectVariableSchema, ProtectedBranchAccessLevel, ProtectedBranchSchema } from '@gitbeaker/core';
import GlobalHelper from '../helpers/GlobalHelper';
import DojoStatusCode from '../shared/types/Dojo/DojoStatusCode'; import DojoStatusCode from '../shared/types/Dojo/DojoStatusCode';
import SharedGitlabManager from '../shared/managers/SharedGitlabManager';
class GitlabManager { class GitlabManager extends SharedGitlabManager {
private readonly api = new Gitlab({ constructor() {
host : SharedConfig.gitlab.URL, super(Config.gitlab.account.token);
token: Config.gitlab.account.token }
});
public async getUserProfile(token: string): Promise<ExpandedUserSchema | undefined> { public async getUserProfile(token: string): Promise<ExpandedUserSchema | undefined> {
try { try {
const profileApi = new Gitlab({ const profileApi = new Gitlab({
host : SharedConfig.gitlab.URL, host : SharedConfig.gitlab.URL,
token: token oauthToken: token
}); });
return await profileApi.Users.showCurrentUser(); return await profileApi.Users.showCurrentUser();
...@@ -108,7 +107,7 @@ class GitlabManager { ...@@ -108,7 +107,7 @@ class GitlabManager {
async checkTemplateAccess(projectIdOrNamespace: string, req: express.Request, res?: express.Response): Promise<boolean> { async checkTemplateAccess(projectIdOrNamespace: string, req: express.Request, res?: express.Response): Promise<boolean> {
// Get the Gitlab project and check if it have public or internal visibility // Get the Gitlab project and check if it have public or internal visibility
try { try {
const project: ProjectSchema = await GlobalHelper.sharedGitlabManager.getRepository(projectIdOrNamespace); const project: ProjectSchema = await this.getRepository(projectIdOrNamespace);
if ( [ 'public', 'internal' ].includes(project.visibility) ) { if ( [ 'public', 'internal' ].includes(project.visibility) ) {
req.session.sendResponse(res, StatusCodes.OK); req.session.sendResponse(res, StatusCodes.OK);
......
...@@ -9,7 +9,6 @@ import GitlabManager from '../managers/GitlabManager'; ...@@ -9,7 +9,6 @@ import GitlabManager from '../managers/GitlabManager';
import UserManager from '../managers/UserManager'; import UserManager from '../managers/UserManager';
import DojoStatusCode from '../shared/types/Dojo/DojoStatusCode'; import DojoStatusCode from '../shared/types/Dojo/DojoStatusCode';
import Config from '../config/Config'; import Config from '../config/Config';
import GlobalHelper from '../helpers/GlobalHelper';
class SessionRoutes implements RoutesManager { class SessionRoutes implements RoutesManager {
...@@ -64,7 +63,7 @@ class SessionRoutes implements RoutesManager { ...@@ -64,7 +63,7 @@ class SessionRoutes implements RoutesManager {
refreshToken: string refreshToken: string
} = req.body; } = req.body;
const gitlabTokens = await GlobalHelper.sharedGitlabManager.getTokens(params.refreshToken, true, Config.login.gitlab.client.secret); const gitlabTokens = await GitlabManager.getTokens(params.refreshToken, true, Config.login.gitlab.client.secret);
req.session.sendResponse(res, StatusCodes.OK, gitlabTokens); req.session.sendResponse(res, StatusCodes.OK, gitlabTokens);
} catch ( error ) { } catch ( error ) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment