diff --git a/ExpressAPI/src/managers/GitlabManager.ts b/ExpressAPI/src/managers/GitlabManager.ts index 53b6ee38ff698ccca6cb71b7916d1fe98a68da8b..d5db3a56b7dc3896f046bc65a401a866766d80be 100644 --- a/ExpressAPI/src/managers/GitlabManager.ts +++ b/ExpressAPI/src/managers/GitlabManager.ts @@ -18,22 +18,27 @@ class GitlabManager { return `${ Config.gitlab.apiURL }${ route }`; } - private async getGitlabUser(paramToSearch: string | number, paramName: string): Promise<GitlabUser | undefined> { + public async getUserById(id: number): Promise<GitlabUser | undefined> { try { const params: any = {}; - params[paramName] = paramToSearch; - return (await axios.get<Array<GitlabUser>>(this.getApiUrl(GitlabRoute.USERS_GET), { params: params })).data[0]; + const user = (await axios.get<GitlabUser>(`${ this.getApiUrl(GitlabRoute.USERS_GET) }/${ String(id) }`, { params: params })).data; + + return user.id === id ? user : undefined; } catch ( e ) { } return undefined; } - public async getUserById(id: number): Promise<GitlabUser | undefined> { - return await this.getGitlabUser(id, 'id'); - } - public async getUserByUsername(username: string): Promise<GitlabUser | undefined> { - return await this.getGitlabUser(username, 'search'); + try { + const params: any = {}; + params['search'] = username; + const user = (await axios.get<Array<GitlabUser>>(this.getApiUrl(GitlabRoute.USERS_GET), { params: params })).data[0]; + + return user.username === username ? user : undefined; + } catch ( e ) { } + + return undefined; } async getRepository(idOrNamespace: string): Promise<GitlabRepository> {