@@ -13,17 +13,14 @@ import com.coder.gateway.sdk.v2.models.User
13
13
import com.coder.gateway.sdk.v2.models.Workspace
14
14
import com.coder.gateway.sdk.v2.models.WorkspaceAgent
15
15
import com.coder.gateway.sdk.v2.models.WorkspaceBuild
16
+ import com.coder.gateway.sdk.v2.models.WorkspaceTransition
16
17
import com.google.gson.Gson
17
18
import com.google.gson.GsonBuilder
18
19
import com.intellij.openapi.components.Service
19
- import okhttp3.Cookie
20
- import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
21
- import okhttp3.JavaNetCookieJar
22
20
import okhttp3.OkHttpClient
23
21
import okhttp3.logging.HttpLoggingInterceptor
24
22
import retrofit2.Retrofit
25
23
import retrofit2.converter.gson.GsonConverterFactory
26
- import java.net.CookieManager
27
24
import java.net.HttpURLConnection.HTTP_CREATED
28
25
import java.net.URL
29
26
import java.time.Instant
@@ -42,26 +39,17 @@ class CoderRestClientService {
42
39
* @throws [AuthenticationResponseException] if authentication failed.
43
40
*/
44
41
fun initClientSession (url : URL , token : String ): User {
45
- val cookieUrl = url.toHttpUrlOrNull()!!
46
- val cookieJar = JavaNetCookieJar (CookieManager ()).apply {
47
- saveFromResponse(
48
- cookieUrl,
49
- listOf (Cookie .parse(cookieUrl, " session_token=$token " )!! )
50
- )
51
- }
52
42
val gson: Gson = GsonBuilder ()
53
43
.registerTypeAdapter(Instant ::class .java, InstantConverter ())
54
44
.setPrettyPrinting()
55
45
.create()
56
46
57
- val interceptor = HttpLoggingInterceptor ()
58
- interceptor.setLevel(HttpLoggingInterceptor .Level .BASIC )
59
47
retroRestClient = Retrofit .Builder ()
60
48
.baseUrl(url.toString())
61
49
.client(
62
50
OkHttpClient .Builder ()
63
- .addInterceptor(interceptor)
64
- .cookieJar(cookieJar )
51
+ .addInterceptor { it.proceed(it.request().newBuilder().addHeader( " Coder-Session-Token " , token).build()) }
52
+ .addInterceptor( HttpLoggingInterceptor (). apply { setLevel( HttpLoggingInterceptor . Level . BASIC ) } )
65
53
.build()
66
54
)
67
55
.addConverterFactory(GsonConverterFactory .create(gson))
@@ -91,7 +79,7 @@ class CoderRestClientService {
91
79
throw WorkspaceResponseException (" Could not retrieve Coder Workspaces:${workspacesResponse.code()} , reason: ${workspacesResponse.message()} " )
92
80
}
93
81
94
- return workspacesResponse.body()!!
82
+ return workspacesResponse.body()!! .workspaces
95
83
}
96
84
97
85
private fun buildInfo (): BuildInfo {
@@ -126,7 +114,7 @@ class CoderRestClientService {
126
114
}
127
115
128
116
fun startWorkspace (workspaceID : UUID , workspaceName : String ): WorkspaceBuild {
129
- val buildRequest = CreateWorkspaceBuildRequest (null , " start " , null , null , null )
117
+ val buildRequest = CreateWorkspaceBuildRequest (null , WorkspaceTransition . START , null , null , null , null )
130
118
val buildResponse = retroRestClient.createWorkspaceBuild(workspaceID, buildRequest).execute()
131
119
if (buildResponse.code() != HTTP_CREATED ) {
132
120
throw WorkspaceResponseException (" Failed to build workspace ${workspaceName} : ${buildResponse.code()} , reason: ${buildResponse.message()} " )
@@ -136,7 +124,7 @@ class CoderRestClientService {
136
124
}
137
125
138
126
fun stopWorkspace (workspaceID : UUID , workspaceName : String ): WorkspaceBuild {
139
- val buildRequest = CreateWorkspaceBuildRequest (null , " stop " , null , null , null )
127
+ val buildRequest = CreateWorkspaceBuildRequest (null , WorkspaceTransition . STOP , null , null , null , null )
140
128
val buildResponse = retroRestClient.createWorkspaceBuild(workspaceID, buildRequest).execute()
141
129
if (buildResponse.code() != HTTP_CREATED ) {
142
130
throw WorkspaceResponseException (" Failed to stop workspace ${workspaceName} : ${buildResponse.code()} , reason: ${buildResponse.message()} " )
@@ -145,10 +133,10 @@ class CoderRestClientService {
145
133
return buildResponse.body()!!
146
134
}
147
135
148
- fun updateWorkspace (workspaceID : UUID , workspaceName : String , lastWorkspaceTransition : String , templateID : UUID ): WorkspaceBuild {
136
+ fun updateWorkspace (workspaceID : UUID , workspaceName : String , lastWorkspaceTransition : WorkspaceTransition , templateID : UUID ): WorkspaceBuild {
149
137
val template = template(templateID)
150
138
151
- val buildRequest = CreateWorkspaceBuildRequest (template.activeVersionID, lastWorkspaceTransition, null , null , null )
139
+ val buildRequest = CreateWorkspaceBuildRequest (template.activeVersionID, lastWorkspaceTransition, null , null , null , null )
152
140
val buildResponse = retroRestClient.createWorkspaceBuild(workspaceID, buildRequest).execute()
153
141
if (buildResponse.code() != HTTP_CREATED ) {
154
142
throw WorkspaceResponseException (" Failed to update workspace ${workspaceName} : ${buildResponse.code()} , reason: ${buildResponse.message()} " )
0 commit comments