refactor: change the return value of uploadPublicKey as promise<string>
This commit is contained in:
@@ -21,40 +21,44 @@ export default class DevstarAPIHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 上传公钥
|
// 上传公钥
|
||||||
public async uploadUserPublicKey() {
|
public async uploadUserPublicKey(): Promise<string> {
|
||||||
// 获取机器名称
|
return new Promise(async (resolve) => {
|
||||||
const machineName = os.hostname();
|
// 获取机器名称
|
||||||
// 组成公钥名称
|
const machineName = os.hostname();
|
||||||
const timestamp = Date.now();
|
// 组成公钥名称
|
||||||
const keyTitle = `${this.user.getUsernameFromLocal()}-${machineName}-${timestamp}`
|
const timestamp = Date.now();
|
||||||
const postData = {
|
const keyTitle = `${this.user.getUsernameFromLocal()}-${machineName}-${timestamp}`
|
||||||
"key": this.user.getUserPublicKey(),
|
const postData = {
|
||||||
"title": keyTitle
|
"key": this.user.getUserPublicKey(),
|
||||||
}
|
"title": keyTitle
|
||||||
|
}
|
||||||
|
|
||||||
const uploadUrl = this.devstarDomain + `/api/v1/user/keys`
|
const uploadUrl = this.devstarDomain + `/api/v1/user/keys`
|
||||||
|
|
||||||
|
// 上传公钥
|
||||||
|
fetch(uploadUrl, {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
'Authorization': 'token ' + this.user.getUserTokenFromLocal()
|
||||||
|
},
|
||||||
|
body: JSON.stringify(postData)
|
||||||
|
})
|
||||||
|
.then(response => {
|
||||||
|
response.json().then(data => {
|
||||||
|
if (response.ok) {
|
||||||
|
console.log("Successfully upload new created public key.\n", data)
|
||||||
|
resolve("ok")
|
||||||
|
} else {
|
||||||
|
throw new Error(`Failed to upload new created public key!\nError: ${data.message}`)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error(error);
|
||||||
|
});
|
||||||
|
|
||||||
// 上传公钥
|
|
||||||
fetch(uploadUrl, {
|
|
||||||
method: 'POST',
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/json',
|
|
||||||
'Authorization': 'token ' + this.user.getUserTokenFromLocal()
|
|
||||||
},
|
|
||||||
body: JSON.stringify(postData)
|
|
||||||
})
|
|
||||||
.then(response => {
|
|
||||||
response.json().then(data => {
|
|
||||||
if (response.ok) {
|
|
||||||
console.log("Successfully upload new created public key.\n", data)
|
|
||||||
} else {
|
|
||||||
throw new Error(`Failed to upload new created public key!\nError: ${data.message}`)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
.catch(error => {
|
|
||||||
console.error(error);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
22
src/main.ts
22
src/main.ts
@@ -45,12 +45,20 @@ export class DevStarExtension {
|
|||||||
// 上传公钥
|
// 上传公钥
|
||||||
const devstarAPIHandler = new DevstarAPIHandler(this.user)
|
const devstarAPIHandler = new DevstarAPIHandler(this.user)
|
||||||
await devstarAPIHandler.uploadUserPublicKey()
|
await devstarAPIHandler.uploadUserPublicKey()
|
||||||
|
.then(async (res) => {
|
||||||
|
if (res === "ok") {
|
||||||
|
// 打开项目
|
||||||
|
await this.remoteContainer.firstOpenProject(container_host, container_port, container_username, project_path)
|
||||||
|
}
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
} else {
|
||||||
|
// 直接打开项目
|
||||||
|
await this.remoteContainer.firstOpenProject(container_host, container_port, container_username, project_path)
|
||||||
}
|
}
|
||||||
await this.remoteContainer.firstOpenProject(container_host, container_port, container_username, project_path)
|
|
||||||
} else if (devstar_username === this.user.getUsernameFromLocal()) {
|
} else if (devstar_username === this.user.getUsernameFromLocal()) {
|
||||||
// 如果同用户已经登录,则忽略;
|
// 如果同用户已经登录,则忽略;
|
||||||
|
// 直接打开项目
|
||||||
await this.remoteContainer.firstOpenProject(container_host, container_port, container_username, project_path)
|
await this.remoteContainer.firstOpenProject(container_host, container_port, container_username, project_path)
|
||||||
} else {
|
} else {
|
||||||
// 如果不是同用户,可以选择切换用户,或者不切换登录用户,直接打开容器
|
// 如果不是同用户,可以选择切换用户,或者不切换登录用户,直接打开容器
|
||||||
@@ -67,9 +75,17 @@ export class DevStarExtension {
|
|||||||
// 上传公钥
|
// 上传公钥
|
||||||
const devstarAPIHandler = new DevstarAPIHandler(this.user)
|
const devstarAPIHandler = new DevstarAPIHandler(this.user)
|
||||||
await devstarAPIHandler.uploadUserPublicKey()
|
await devstarAPIHandler.uploadUserPublicKey()
|
||||||
|
.then(async (res) => {
|
||||||
|
if (res === "ok") {
|
||||||
|
// 打开项目
|
||||||
|
await this.remoteContainer.firstOpenProject(container_host, container_port, container_username, project_path)
|
||||||
|
}
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
} else {
|
||||||
|
// 直接打开项目
|
||||||
|
await this.remoteContainer.firstOpenProject(container_host, container_port, container_username, project_path)
|
||||||
}
|
}
|
||||||
await this.remoteContainer.firstOpenProject(container_host, container_port, container_username, project_path)
|
|
||||||
} else if (selection === 'No') {
|
} else if (selection === 'No') {
|
||||||
await openProjectWithoutLogging(container_host, container_port, container_username, project_path);
|
await openProjectWithoutLogging(container_host, container_port, container_username, project_path);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user