Skip to content
This repository was archived by the owner on Jun 5, 2026. It is now read-only.

Commit f769b48

Browse files
committed
sync: import Gitea changes for v1.5.1
1 parent b735527 commit f769b48

5 files changed

Lines changed: 40 additions & 22 deletions

File tree

HomelabAndroid/app/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ android {
1414
applicationId = "com.homelab.app"
1515
minSdk = 26
1616
targetSdk = 36
17-
versionCode = 31
18-
versionName = "1.5.0"
17+
versionCode = 32
18+
versionName = "1.5.1"
1919
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
2020

2121
vectorDrawables {

HomelabAndroid/app/src/main/java/com/homelab/app/data/remote/api/KomodoApi.kt

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.homelab.app.data.remote.api
22

33
import kotlinx.serialization.json.JsonElement
4+
import kotlinx.serialization.json.JsonObject
45
import retrofit2.http.Body
56
import retrofit2.http.Header
67
import retrofit2.http.POST
@@ -9,84 +10,84 @@ interface KomodoApi {
910

1011
@POST("read/GetVersion")
1112
suspend fun getVersion(
12-
@Body body: Map<String, String> = emptyMap(),
13+
@Body body: JsonObject = JsonObject(emptyMap()),
1314
@Header("X-Homelab-Service") service: String = "Komodo",
1415
@Header("X-Homelab-Instance-Id") instanceId: String
1516
): JsonElement
1617

1718
@POST("read/GetServersSummary")
1819
suspend fun getServersSummary(
19-
@Body body: Map<String, String> = emptyMap(),
20+
@Body body: JsonObject = JsonObject(emptyMap()),
2021
@Header("X-Homelab-Service") service: String = "Komodo",
2122
@Header("X-Homelab-Instance-Id") instanceId: String
2223
): JsonElement
2324

2425
@POST("read/GetDeploymentsSummary")
2526
suspend fun getDeploymentsSummary(
26-
@Body body: Map<String, String> = emptyMap(),
27+
@Body body: JsonObject = JsonObject(emptyMap()),
2728
@Header("X-Homelab-Service") service: String = "Komodo",
2829
@Header("X-Homelab-Instance-Id") instanceId: String
2930
): JsonElement
3031

3132
@POST("read/GetStacksSummary")
3233
suspend fun getStacksSummary(
33-
@Body body: Map<String, String> = emptyMap(),
34+
@Body body: JsonObject = JsonObject(emptyMap()),
3435
@Header("X-Homelab-Service") service: String = "Komodo",
3536
@Header("X-Homelab-Instance-Id") instanceId: String
3637
): JsonElement
3738

3839
@POST("read/GetDockerContainersSummary")
3940
suspend fun getDockerContainersSummary(
40-
@Body body: Map<String, String> = emptyMap(),
41+
@Body body: JsonObject = JsonObject(emptyMap()),
4142
@Header("X-Homelab-Service") service: String = "Komodo",
4243
@Header("X-Homelab-Instance-Id") instanceId: String
4344
): JsonElement
4445

4546
@POST("read/ListStacks")
4647
suspend fun listStacks(
47-
@Body body: Map<String, @JvmSuppressWildcards Any?> = mapOf("query" to emptyMap<String, Any>()),
48+
@Body body: JsonObject,
4849
@Header("X-Homelab-Service") service: String = "Komodo",
4950
@Header("X-Homelab-Instance-Id") instanceId: String
5051
): JsonElement
5152

5253
@POST("read/GetStack")
5354
suspend fun getStack(
54-
@Body body: Map<String, @JvmSuppressWildcards Any?>,
55+
@Body body: JsonObject,
5556
@Header("X-Homelab-Service") service: String = "Komodo",
5657
@Header("X-Homelab-Instance-Id") instanceId: String
5758
): JsonElement
5859

5960
@POST("read/ListStackServices")
6061
suspend fun listStackServices(
61-
@Body body: Map<String, @JvmSuppressWildcards Any?>,
62+
@Body body: JsonObject,
6263
@Header("X-Homelab-Service") service: String = "Komodo",
6364
@Header("X-Homelab-Instance-Id") instanceId: String
6465
): JsonElement
6566

6667
@POST("execute/DeployStack")
6768
suspend fun deployStack(
68-
@Body body: Map<String, @JvmSuppressWildcards Any?>,
69+
@Body body: JsonObject,
6970
@Header("X-Homelab-Service") service: String = "Komodo",
7071
@Header("X-Homelab-Instance-Id") instanceId: String
7172
): JsonElement
7273

7374
@POST("execute/StartStack")
7475
suspend fun startStack(
75-
@Body body: Map<String, @JvmSuppressWildcards Any?>,
76+
@Body body: JsonObject,
7677
@Header("X-Homelab-Service") service: String = "Komodo",
7778
@Header("X-Homelab-Instance-Id") instanceId: String
7879
): JsonElement
7980

8081
@POST("execute/StopStack")
8182
suspend fun stopStack(
82-
@Body body: Map<String, @JvmSuppressWildcards Any?>,
83+
@Body body: JsonObject,
8384
@Header("X-Homelab-Service") service: String = "Komodo",
8485
@Header("X-Homelab-Instance-Id") instanceId: String
8586
): JsonElement
8687

8788
@POST("execute/RestartStack")
8889
suspend fun restartStack(
89-
@Body body: Map<String, @JvmSuppressWildcards Any?>,
90+
@Body body: JsonObject,
9091
@Header("X-Homelab-Service") service: String = "Komodo",
9192
@Header("X-Homelab-Instance-Id") instanceId: String
9293
): JsonElement

HomelabAndroid/app/src/main/java/com/homelab/app/data/repository/KomodoRepository.kt

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import kotlinx.serialization.json.JsonElement
1313
import kotlinx.serialization.json.JsonNull
1414
import kotlinx.serialization.json.JsonObject
1515
import kotlinx.serialization.json.JsonPrimitive
16+
import kotlinx.serialization.json.buildJsonObject
1617
import kotlinx.serialization.json.contentOrNull
1718
import kotlinx.serialization.json.intOrNull
1819
import kotlinx.serialization.json.jsonPrimitive
@@ -143,12 +144,12 @@ class KomodoRepository @Inject constructor(
143144
}
144145

145146
suspend fun getStacks(instanceId: String): List<KomodoStackItem> {
146-
val response = api.listStacks(instanceId = instanceId)
147+
val response = api.listStacks(body = listStacksBody(), instanceId = instanceId)
147148
return arrayPayload(response).mapNotNull { parseStackItem(it) }
148149
}
149150

150151
suspend fun getStackDetail(instanceId: String, stackId: String): KomodoStackDetail {
151-
val body = mapOf("stack" to stackId)
152+
val body = stackBody(stackId)
152153
val stackResponse = api.getStack(body = body, instanceId = instanceId)
153154
val servicesResponse = api.listStackServices(body = body, instanceId = instanceId)
154155
val stack = parseStackItem(unwrap(stackResponse))
@@ -168,10 +169,10 @@ class KomodoRepository @Inject constructor(
168169

169170
suspend fun executeStackAction(instanceId: String, stackId: String, action: KomodoStackAction) {
170171
val body = when (action) {
171-
KomodoStackAction.DEPLOY -> mapOf("stack" to stackId, "services" to emptyList<String>(), "stop_time" to null)
172+
KomodoStackAction.DEPLOY -> stackActionBody(stackId, includeStopTime = true)
172173
KomodoStackAction.START,
173174
KomodoStackAction.STOP,
174-
KomodoStackAction.RESTART -> mapOf("stack" to stackId, "services" to emptyList<String>())
175+
KomodoStackAction.RESTART -> stackActionBody(stackId, includeStopTime = false)
175176
}
176177
when (action) {
177178
KomodoStackAction.DEPLOY -> api.deployStack(body = body, instanceId = instanceId)
@@ -181,6 +182,22 @@ class KomodoRepository @Inject constructor(
181182
}
182183
}
183184

185+
private fun listStacksBody(): JsonObject = buildJsonObject {
186+
put("query", JsonObject(emptyMap()))
187+
}
188+
189+
private fun stackBody(stackId: String): JsonObject = buildJsonObject {
190+
put("stack", JsonPrimitive(stackId))
191+
}
192+
193+
private fun stackActionBody(stackId: String, includeStopTime: Boolean): JsonObject = buildJsonObject {
194+
put("stack", JsonPrimitive(stackId))
195+
put("services", JsonArray(emptyList()))
196+
if (includeStopTime) {
197+
put("stop_time", JsonNull)
198+
}
199+
}
200+
184201
private suspend fun validateCredentials(
185202
baseUrl: String,
186203
apiKey: String,

HomelabSwift/Homelab/Info.plist

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@
5353
<key>CFBundlePackageType</key>
5454
<string>$(PRODUCT_BUNDLE_TYPE)</string>
5555
<key>CFBundleShortVersionString</key>
56-
<string>1.5.0</string>
56+
<string>1.5.1</string>
5757
<key>CFBundleVersion</key>
58-
<string>31</string>
58+
<string>32</string>
5959
<key>LSApplicationQueriesSchemes</key>
6060
<array>
6161
<string>tailscale</string>

HomelabSwift/Homelab/Networking/Komodo/KomodoAPIClient.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ actor KomodoAPIClient {
7676
}
7777

7878
func getStacks() async throws -> [KomodoStackItem] {
79-
let json = try await readJSON(path: "/read/ListStacks", body: ["query": [:]])
79+
let json = try await readJSON(path: "/read/ListStacks", body: ["query": [String: Any]()])
8080
return KomodoJSON.arrayPayload(from: json).compactMap { KomodoJSON.stackItem(from: $0) }
8181
}
8282

@@ -101,7 +101,7 @@ actor KomodoAPIClient {
101101

102102
func executeStackAction(stackId: String, action: KomodoStackAction) async throws {
103103
let path: String
104-
var body: [String: Any] = ["stack": stackId, "services": []]
104+
var body: [String: Any] = ["stack": stackId, "services": [String]()]
105105
switch action {
106106
case .deploy:
107107
path = "/execute/DeployStack"

0 commit comments

Comments
 (0)