refactor: extract the methods about user into class User

This commit is contained in:
Levi Yan
2024-10-23 13:45:19 +08:00
parent 0a31591150
commit bac497fabf
2 changed files with 37 additions and 6 deletions

View File

@@ -1,15 +1,18 @@
import * as vscode from 'vscode'; import * as vscode from 'vscode';
import RemoteContainer from './remote-container'; import RemoteContainer from './remote-container';
import User from './user';
import * as utils from './utils' import * as utils from './utils'
export default class DSHome { export default class DSHome {
private context: vscode.ExtensionContext; private context: vscode.ExtensionContext;
private remoteContainer: RemoteContainer; private remoteContainer: RemoteContainer;
private user:User;
static defaultUrl = 'http://localhost:8080/test/index.html'; static defaultUrl = 'http://localhost:8080/test/index.html';
constructor(context: vscode.ExtensionContext) { constructor(context: vscode.ExtensionContext) {
this.context = context; this.context = context;
this.remoteContainer = new RemoteContainer() this.remoteContainer = new RemoteContainer();
this.user = new User(context);
} }
async toggle(url: string = DSHome.defaultUrl) { async toggle(url: string = DSHome.defaultUrl) {
@@ -47,7 +50,7 @@ export default class DSHome {
this.remoteContainer.openRemoteFolder(data.host, data.path); this.remoteContainer.openRemoteFolder(data.host, data.path);
break; break;
case 'getUserToken': case 'getUserToken':
const userToken = this.context.globalState.get('devstarUserToken') const userToken = this.user.getUserTokenFromLocal()
if (userToken === undefined) { if (userToken === undefined) {
panel.webview.postMessage({ command: 'getUserToken', data: {userToken: ''}}) panel.webview.postMessage({ command: 'getUserToken', data: {userToken: ''}})
break; break;
@@ -56,10 +59,10 @@ export default class DSHome {
break; break;
} }
case 'setUserToken': case 'setUserToken':
this.context.globalState.update('devstarUserToken', data.userToken) this.user.setUserTokenToLocal(data.userToken)
console.log(this.context.globalState.get('devstarUserToken')) console.log(data.userToken)
console.log(message.data.userToken) console.log(this.user.getUserTokenFromLocal())
if (message.data.userToken === this.context.globalState.get('devstarUserToken')) { if (data.userToken === this.user.getUserTokenFromLocal()) {
panel.webview.postMessage({ command: 'setUserToken', data: {ok: true}}) panel.webview.postMessage({ command: 'setUserToken', data: {ok: true}})
break; break;
} else { } else {

28
src/user.ts Normal file
View File

@@ -0,0 +1,28 @@
import * as vscode from 'vscode';
export default class User {
private context:vscode.ExtensionContext;
private usernameKey:string = 'devstarUsername'
private userTokenKey:string = 'devstarUserToken'
constructor(context: vscode.ExtensionContext) {
this.context = context;
}
public getUsernameFromLocal(): string|undefined {
return this.context.globalState.get(this.usernameKey);
}
public getUserTokenFromLocal(): string|undefined{
return this.context.globalState.get(this.userTokenKey);
}
public setUsernameToLocal(username:string) {
this.context.globalState.update(this.usernameKey, username)
}
public setUserTokenToLocal(userToken:string) {
this.context.globalState.update(this.userTokenKey, userToken)
}
}