Skip to content

Commit 2dc7c1a

Browse files
committed
review: fixes & improves
1 parent c634a5a commit 2dc7c1a

3 files changed

Lines changed: 33 additions & 35 deletions

File tree

plugins/plugin-servers/src/main/kotlin/com/redmadrobot/debug/plugin/servers/data/model/DebugStage.kt

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,7 @@ public data class DebugStage(
1717
}
1818

1919
override fun equals(other: Any?): Boolean {
20-
if (this === other) return true
21-
if (javaClass != other?.javaClass) return false
22-
23-
other as DebugStage
24-
25-
if (name != other.name) return false
26-
if (hosts != other.hosts) return false
27-
if (isDefault != other.isDefault) return false
28-
29-
return true
30-
}
31-
32-
override fun hashCode(): Int {
33-
var result = name.hashCode()
34-
result = 31 * result + hosts.hashCode()
35-
result = 31 * result + isDefault.hashCode()
36-
return result
20+
val otherServer = other as DebugStage
21+
return this.hosts.size == otherServer.hosts.size && this.hosts == otherServer.hosts
3722
}
3823
}

plugins/plugin-servers/src/main/kotlin/com/redmadrobot/debug/plugin/servers/interceptor/DebugStageInterceptor.kt

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -30,25 +30,28 @@ public class DebugStageInterceptor(private val hostName: String) : Interceptor {
3030
}
3131

3232
override fun intercept(chain: Interceptor.Chain): Response {
33-
var request = chain.request()
34-
return if (DebugPanel.isInitialized) {
35-
val debugStage = stageRepository.getSelectedStage()
36-
val modifiedRequest = debugStage?.let { stage ->
37-
val host = stage.hosts[hostName]
38-
if (host != null) {
39-
val newUrl = request.getNewUrl(host)
40-
request = request.newBuilder()
41-
.url(newUrl)
42-
.build()
43-
}
44-
45-
requestModifier?.invoke(request, stage)
46-
} ?: request
47-
48-
chain.proceed(modifiedRequest)
49-
} else {
50-
chain.proceed(request)
33+
val originalRequest = chain.request()
34+
35+
if (!DebugPanel.isInitialized) {
36+
return chain.proceed(originalRequest)
37+
}
38+
39+
val debugStage = stageRepository.getSelectedStage()
40+
val host = debugStage?.hosts?.get(hostName)
41+
var currentRequest = originalRequest
42+
43+
if (host != null) {
44+
val newUrl = originalRequest.getNewUrl(host)
45+
if (newUrl != originalRequest.url) {
46+
currentRequest = originalRequest.newBuilder().url(newUrl).build()
47+
}
5148
}
49+
50+
val modifiedRequest = debugStage?.let { stage ->
51+
requestModifier?.invoke(currentRequest, stage)
52+
}
53+
54+
return chain.proceed(modifiedRequest ?: currentRequest)
5255
}
5356

5457

sample/src/debug/kotlin/com/redmadrobot/debug_sample/debug_data/DebugServersProvider.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.redmadrobot.debug_sample.debug_data
22

33
import com.redmadrobot.debug.plugin.servers.data.model.DebugServer
44
import com.redmadrobot.debug.plugin.servers.data.model.DebugServerData
5+
import com.redmadrobot.debug.plugin.servers.data.model.DebugStage
56

67
class DebugServersProvider {
78

@@ -21,6 +22,15 @@ class DebugServersProvider {
2122
DebugServer(
2223
name = "debug 4", url = "https://testserver4.com"
2324
),
25+
DebugStage(
26+
name = "debug stage 1",
27+
hosts = mapOf(
28+
"main" to "https://testserver1main.com",
29+
"s3" to "https://testserver1s3.com",
30+
"wss" to "https://testserver1wss.com"
31+
),
32+
isDefault = true
33+
),
2434
)
2535
}
2636
}

0 commit comments

Comments
 (0)