Skip to content

Commit bdba0e1

Browse files
committed
Implement http calls to retrieve user's ssh keys
- declare retrofit API to get SSH public/private keys for a logged user - declare data model to represent the keys
1 parent 2cbc784 commit bdba0e1

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.coder.gateway.models
2+
3+
import com.google.gson.annotations.SerializedName
4+
5+
data class SSHKeys(@SerializedName("public_key") val publicKey: String, @SerializedName("private_key") val privateKey: String)

src/main/kotlin/com/coder/gateway/sdk/CoderClientService.kt

+10-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.coder.gateway.sdk
22

33
import com.coder.gateway.models.UriScheme
44
import com.coder.gateway.models.User
5+
import com.coder.gateway.models.SSHKeys
56
import com.coder.gateway.models.Workspace
67
import com.coder.gateway.sdk.ex.AuthenticationException
78
import com.google.gson.Gson
@@ -66,6 +67,14 @@ class CoderClientService {
6667
}
6768

6869
return workspacesResponse.body()!!
70+
}
71+
72+
fun userSSHKeys(): SSHKeys {
73+
val sshKeysResponse = retroRestClient.sshKeys(sessionToken, me.id).execute()
74+
if (!sshKeysResponse.isSuccessful) {
75+
throw IllegalStateException("Could not retrieve Coder Workspaces:${sshKeysResponse.code()}, reason: ${sshKeysResponse.message()}")
76+
}
6977

78+
return sshKeysResponse.body()!!
7079
}
71-
}
80+
}

src/main/kotlin/com/coder/gateway/sdk/CoderRestService.kt

+5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package com.coder.gateway.sdk
22

33
import com.coder.gateway.models.User
4+
import com.coder.gateway.models.SSHKeys
45
import com.coder.gateway.models.Workspace
56
import retrofit2.Call
67
import retrofit2.http.Body
78
import retrofit2.http.GET
89
import retrofit2.http.Header
910
import retrofit2.http.POST
11+
import retrofit2.http.Path
1012
import retrofit2.http.Query
1113

1214

@@ -20,4 +22,7 @@ interface CoderRestService {
2022

2123
@GET("api/v0/workspaces")
2224
fun workspaces(@Header("Session-Token") sessionToken: String, @Query("users") users: String): Call<List<Workspace>>
25+
26+
@GET("api/v0/users/{userId}/sshkey")
27+
fun sshKeys(@Header("Session-Token") sessionToken: String, @Path("userId") userID: String): Call<SSHKeys>
2328
}

0 commit comments

Comments
 (0)