diff --git a/test/home.html b/test/home.html index 308205a..859a7b8 100644 --- a/test/home.html +++ b/test/home.html @@ -356,15 +356,25 @@ header("Allow: GET, POST, OPTIONS, PUT, DELETE"); .then(async userPublicKey => { if (userPublicKey == '') { await createUserPublicKeyByVSCode() - await getUserPublicKeyFromVSCode() - .then(async userPublicKey => { - // upload new created public key - - }) + .then(async () => { + // only upload new created public key + await getUserPublicKeyFromVSCode() + .then(async userPublicKey => { + const dataFromResp = await communicateVSCodeByWebview('getMachineName', {}); + const machineName = dataFromResp.machineName; - } + const keyTitle = `${USERNAME}-${machineName}` + await uploadNewCreatedPublicKey(userPublicKey, keyTitle); + }) + .catch(error => { + console.error("Failed to get NEW CREATED user public key from vscode: ", error) + }) + }) + } + }) + .catch(error => { + console.error("Failed to get user public key from vscode: ", error) }) - closeLoginModal() }) @@ -460,6 +470,36 @@ header("Allow: GET, POST, OPTIONS, PUT, DELETE"); }) } + async function uploadNewCreatedPublicKey(userPublicKey, keyTitle) { + const postData = { + "key": userPublicKey, + "title": keyTitle + } + + const uploadUrl = DEVSTAR_HOME + `/api/v1/user/keys`; + + fetch(uploadUrl, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'token ' + USERTOKEN + }, + body: JSON.stringify(postData) + }) + .then(response => { + if (!response.ok) { + throw new Error('Error in logging ' + response.statusText); + } + return response.json(); + }) + .then(async data => { + console.log(data) + }) + .catch(error => { + console.error('There has been a problem with your fetch operation:', error); + }); + } + // ===================================== Repo =========================== function loadRepositories() { // clear old data @@ -685,16 +725,13 @@ header("Allow: GET, POST, OPTIONS, PUT, DELETE"); // TODO: create container async function createDevContainer(repoId) { return new Promise(async (resolve, reject) => { - // get public key - const publicKey = await getDefaultPublicKeyFromVSCode() - // request creating container const url = DEVSTAR_HOME + "/api/devcontainer" var token = USERTOKEN const postData = { "repoId": repoId.toString(), - "sshPublicKeyList": [publicKey] + // "sshPublicKeyList": [publicKey] } fetch(url, {