import { link } from 'fs'; import { url } from 'inspector'; import * as vscode from 'vscode'; import { OPEN_GETTING_STARTED_COMMAND } from '../theia/command'; import { CHOOSE_MISSION_WORKDIR_COMMAND } from './commandHandler'; import ExtensionStore from './extensionStore'; import KeycloakOAuth2DeviceFlowConnection from './keycloakOAuth2DeviceFlowConnection'; export default class Controller { private connection: KeycloakOAuth2DeviceFlowConnection; constructor() { this.connection = new KeycloakOAuth2DeviceFlowConnection( 'https://auth.dev.deadlock.io/auth/realms/Deadlock/protocol/openid-connect/auth/device', 'https://auth.dev.deadlock.io/auth/realms/Deadlock/protocol/openid-connect/token', ); } openBrowserWithUrl(url: string) { vscode.commands.executeCommand('vscode.open', vscode.Uri.parse(url)); } async launchMission(missionId: string | null) { if (missionId) { vscode.window.showInformationMessage(`vous lancez la mission ${missionId}`); const extensionStore = ExtensionStore.getInstance(); const hadMissionWorkdir = extensionStore.getMissionWorkdir() !== undefined; if (!hadMissionWorkdir) { await vscode.commands.executeCommand(CHOOSE_MISSION_WORKDIR_COMMAND.cmd); } const isConnected = (await extensionStore.getAccessToken()) !== undefined; console.log('accesToke: ' + extensionStore.getAccessToken()); //TODO: Connection if (!isConnected) { const { accessToken, refreshToken } = await this.connection.getToken({ openLink: this.openBrowserWithUrl }); console.log('VOICI LES TOKENS'); console.log(accessToken, refreshToken); } vscode.commands.executeCommand(OPEN_GETTING_STARTED_COMMAND.cmd); } } }