diff --git a/app/src/main/java/com/m57/hermescontrol/data/model/MessagingPlatformResponse.kt b/app/src/main/java/com/m57/hermescontrol/data/model/MessagingPlatformResponse.kt new file mode 100644 index 00000000..5580ae56 --- /dev/null +++ b/app/src/main/java/com/m57/hermescontrol/data/model/MessagingPlatformResponse.kt @@ -0,0 +1,7 @@ +package com.m57.hermescontrol.data.model + +data class MessagingPlatformResponse( + val env_path: String, + val gateway_start_command: String, + val platforms: List, +) diff --git a/app/src/main/java/com/m57/hermescontrol/data/remote/HermesApiService.kt b/app/src/main/java/com/m57/hermescontrol/data/remote/HermesApiService.kt index 5e9e335f..6d5a0e39 100644 --- a/app/src/main/java/com/m57/hermescontrol/data/remote/HermesApiService.kt +++ b/app/src/main/java/com/m57/hermescontrol/data/remote/HermesApiService.kt @@ -16,7 +16,7 @@ import com.m57.hermescontrol.data.model.KanbanTask import com.m57.hermescontrol.data.model.LogResponse import com.m57.hermescontrol.data.model.McpServerToggleRequest import com.m57.hermescontrol.data.model.McpServersResponse -import com.m57.hermescontrol.data.model.MessagingPlatform +import com.m57.hermescontrol.data.model.MessagingPlatformResponse import com.m57.hermescontrol.data.model.MessagingPlatformUpdate import com.m57.hermescontrol.data.model.ModelOptionsResponse import com.m57.hermescontrol.data.model.PairingApproveRequest @@ -253,7 +253,7 @@ interface HermesApiService { ): Response @GET("api/messaging/platforms") - suspend fun getMessagingPlatforms(): Response> + suspend fun getMessagingPlatforms(@Query("profile") profile: String? = null): Response @PUT("api/messaging/platforms/{platform_id}") suspend fun configurePlatform( diff --git a/app/src/main/java/com/m57/hermescontrol/ui/channels/ChannelsViewModel.kt b/app/src/main/java/com/m57/hermescontrol/ui/channels/ChannelsViewModel.kt index 18bb9938..90f3ba50 100644 --- a/app/src/main/java/com/m57/hermescontrol/ui/channels/ChannelsViewModel.kt +++ b/app/src/main/java/com/m57/hermescontrol/ui/channels/ChannelsViewModel.kt @@ -35,7 +35,7 @@ class ChannelsViewModel : ViewModel() { } when (result) { is NetworkResult.Success -> { - _uiState.update { it.copy(isLoading = false, platforms = result.data.orEmpty()) } + _uiState.update { it.copy(isLoading = false, platforms = result.data?.platforms.orEmpty()) } } is NetworkResult.Failure -> { diff --git a/app/src/test/java/com/m57/hermescontrol/E2eIntegrationTest.kt b/app/src/test/java/com/m57/hermescontrol/E2eIntegrationTest.kt index c77fe129..5dd78581 100644 --- a/app/src/test/java/com/m57/hermescontrol/E2eIntegrationTest.kt +++ b/app/src/test/java/com/m57/hermescontrol/E2eIntegrationTest.kt @@ -14,6 +14,7 @@ import com.m57.hermescontrol.data.model.KanbanColumn import com.m57.hermescontrol.data.model.KanbanTask import com.m57.hermescontrol.data.model.LogResponse import com.m57.hermescontrol.data.model.MessagingPlatform +import com.m57.hermescontrol.data.model.MessagingPlatformResponse import com.m57.hermescontrol.data.model.ModelOptionsResponse import com.m57.hermescontrol.data.model.ModelProvider import com.m57.hermescontrol.data.model.PluginInfo @@ -895,7 +896,14 @@ class E2eIntegrationTest { fun testChannelsConfiguration_success() = runTest { val platform = MessagingPlatform("telegram", "Telegram", false, false, emptyList()) - coEvery { mockApiService.getMessagingPlatforms() } returns Response.success(listOf(platform)) + coEvery { mockApiService.getMessagingPlatforms() } returns + Response.success( + MessagingPlatformResponse( + env_path = "/tmp/.env", + gateway_start_command = "hermes gateway start", + platforms = listOf(platform), + ), + ) coEvery { mockApiService.configurePlatform("telegram", any()) } returns Response.success(Unit) val viewModel = ChannelsViewModel()