diff --git a/NodeApp/src/managers/DojoBackendManager.ts b/NodeApp/src/managers/DojoBackendManager.ts index 64c56cb34e1e25cc4b0fb3198d09d94e4b5993dd..12cc16b6822a4414fe2f01408cf58f3627624b19 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;