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