From 3baa9c6283197e23bd81ae57cc529194b533e581 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C3=ABl=20Minelli?= <michael@minelli.me>
Date: Thu, 2 Nov 2023 13:12:29 +0100
Subject: [PATCH] GitlabManager => Add getUserProfile function

---
 ExpressAPI/src/managers/GitlabManager.ts | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/ExpressAPI/src/managers/GitlabManager.ts b/ExpressAPI/src/managers/GitlabManager.ts
index b057966..2a89593 100644
--- a/ExpressAPI/src/managers/GitlabManager.ts
+++ b/ExpressAPI/src/managers/GitlabManager.ts
@@ -12,6 +12,7 @@ import GitlabFile        from '../shared/types/Gitlab/GitlabFile';
 import express           from 'express';
 import GitlabRoute       from '../shared/types/Gitlab/GitlabRoute';
 import SharedConfig      from '../shared/config/SharedConfig';
+import GitlabProfile     from '../shared/types/Gitlab/GitlabProfile';
 
 
 class GitlabManager {
@@ -19,6 +20,20 @@ class GitlabManager {
         return `${ SharedConfig.gitlab.apiURL }${ route }`;
     }
 
+    public async getUserProfile(token: string): Promise<GitlabProfile | undefined> {
+        try {
+            return (await axios.get<GitlabProfile>(this.getApiUrl(GitlabRoute.PROFILE_GET), {
+                headers: {
+                    DojoOverrideAuthorization: true,
+                    DojoAuthorizationHeader  : 'Authorization',
+                    DojoAuthorizationValue   : `Bearer ${ token }`
+                }
+            })).data;
+        } catch ( e ) { }
+
+        return undefined;
+    }
+
     public async getUserById(id: number): Promise<GitlabUser | undefined> {
         try {
             const params: any = {};
-- 
GitLab