From 1b6cbca449ab2eb28d895c16e2a1c25329ed2be9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Minelli?= <michael@minelli.me> Date: Thu, 2 Nov 2023 14:18:29 +0100 Subject: [PATCH] DojoBackendManager => Add login and refreshTokens functions --- NodeApp/src/managers/DojoBackendManager.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/NodeApp/src/managers/DojoBackendManager.ts b/NodeApp/src/managers/DojoBackendManager.ts index 64c56cb..12cc16b 100644 --- a/NodeApp/src/managers/DojoBackendManager.ts +++ b/NodeApp/src/managers/DojoBackendManager.ts @@ -7,6 +7,8 @@ import ClientsSharedConfig from '../sharedByClients/config/ClientsSharedConfig import Assignment from '../sharedByClients/models/Assignment'; import DojoBackendResponse from '../shared/types/Dojo/DojoBackendResponse'; import Exercise from '../sharedByClients/models/Exercise'; +import GitlabToken from '../shared/types/Gitlab/GitlabToken'; +import User from '../sharedByClients/models/User'; class DojoBackendManager { @@ -14,6 +16,26 @@ class DojoBackendManager { return `${ ClientsSharedConfig.apiURL }${ route }`; } + + public async login(gitlabTokens: GitlabToken): Promise<User | undefined> { + try { + return (await axios.post<DojoBackendResponse<User>>(this.getApiUrl(ApiRoute.LOGIN), { + accessToken : gitlabTokens.access_token, + refreshToken: gitlabTokens.refresh_token + })).data.data; + } catch ( error ) { + return undefined; + } + } + + + public async refreshTokens(refreshToken: string): Promise<GitlabToken> { + return (await axios.post<DojoBackendResponse<GitlabToken>>(this.getApiUrl(ApiRoute.REFRESH_TOKENS), { + refreshToken: refreshToken + })).data.data; + } + + public async getAssignment(nameOrUrl: string): Promise<Assignment | undefined> { try { return (await axios.get<DojoBackendResponse<Assignment>>(this.getApiUrl(ApiRoute.ASSIGNMENT_GET).replace('{{nameOrUrl}}', encodeURIComponent(nameOrUrl)))).data.data; -- GitLab