Skip to content

Commit c52117f

Browse files
Merge pull request #2230 from digma-ai/add-error-to-ui-messages
Add error to UI messages
2 parents 395854a + 0cf3e4a commit c52117f

File tree

7 files changed

+131
-122
lines changed

7 files changed

+131
-122
lines changed

src/main/kotlin/org/digma/intellij/plugin/ui/assets/AssetsMessageRouterHandler.kt

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@ import com.fasterxml.jackson.core.JsonProcessingException
44
import com.fasterxml.jackson.databind.JsonNode
55
import com.intellij.openapi.project.Project
66
import org.cef.browser.CefBrowser
7+
import org.digma.intellij.plugin.analytics.AnalyticsServiceException
78
import org.digma.intellij.plugin.log.Log
89
import org.digma.intellij.plugin.ui.assets.model.SetAssetsDataFiltersMessage
910
import org.digma.intellij.plugin.ui.assets.model.SetAssetsDataMessage
1011
import org.digma.intellij.plugin.ui.assets.model.SetCategoriesDataMessage
1112
import org.digma.intellij.plugin.ui.jcef.BaseCommonMessageRouterHandler
1213
import org.digma.intellij.plugin.ui.jcef.getQueryMapFromPayload
14+
import org.digma.intellij.plugin.ui.jcef.model.ErrorPayload
1315
import org.digma.intellij.plugin.ui.jcef.serializeAndExecuteWindowPostMessageJavaScript
1416

1517
class AssetsMessageRouterHandler(project: Project) : BaseCommonMessageRouterHandler(project) {
@@ -39,9 +41,16 @@ class AssetsMessageRouterHandler(project: Project) : BaseCommonMessageRouterHand
3941

4042
Log.log(logger::trace, project, "pushCategories called")
4143

42-
val backendQueryParams = getQueryMapFromPayload(requestJsonNode, objectMapper)
43-
val payload = objectMapper.readTree(AssetsService.getInstance(project).getAssetCategories(backendQueryParams))
44-
val message = SetCategoriesDataMessage(payload)
44+
val message = try {
45+
val backendQueryParams = getQueryMapFromPayload(requestJsonNode, objectMapper)
46+
val payload = objectMapper.readTree(AssetsService.getInstance(project).getAssetCategories(backendQueryParams))
47+
SetCategoriesDataMessage(payload)
48+
} catch (e: AnalyticsServiceException) {
49+
Log.warnWithException(logger, project, e, "Error loading categories {}", e.message)
50+
val error = ErrorPayload(e.meaningfulMessage)
51+
val payload = objectMapper.readTree("{ \"assetCategories\": [] }")
52+
SetCategoriesDataMessage(payload, error)
53+
}
4554
Log.log(logger::trace, project, "sending ASSETS/SET_CATEGORIES_DATA message")
4655
serializeAndExecuteWindowPostMessageJavaScript(browser, message)
4756
}
@@ -60,10 +69,18 @@ class AssetsMessageRouterHandler(project: Project) : BaseCommonMessageRouterHand
6069
@Throws(JsonProcessingException::class)
6170
private fun pushAssets(browser: CefBrowser, requestJsonNode: JsonNode) {
6271

63-
val backendQueryParams = getQueryMapFromPayload(requestJsonNode, objectMapper)
6472
Log.log(logger::trace, project, "pushAssets called")
65-
val payload = objectMapper.readTree(AssetsService.getInstance(project).getAssets(backendQueryParams))
66-
val message = SetAssetsDataMessage(payload)
73+
val message = try{
74+
val backendQueryParams = getQueryMapFromPayload(requestJsonNode, objectMapper)
75+
val assets = AssetsService.getInstance(project).getAssets(backendQueryParams)
76+
val payload = objectMapper.readTree(assets)
77+
SetAssetsDataMessage(payload)
78+
}catch (e: AnalyticsServiceException){
79+
Log.warnWithException(logger,project,e,"Error loading assets {}",e)
80+
val error = ErrorPayload(e.meaningfulMessage)
81+
val payload = objectMapper.readTree("")
82+
SetAssetsDataMessage(payload,error)
83+
}
6784
Log.log(logger::trace, project, "sending ASSETS/SET_DATA message")
6885
serializeAndExecuteWindowPostMessageJavaScript(browser, message)
6986
}

src/main/kotlin/org/digma/intellij/plugin/ui/assets/AssetsService.kt

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,11 @@ class AssetsService(private val project: Project) : Disposable {
3434

3535
fun getAssetCategories(queryParams: Map<String, Any?>): String {
3636
EDT.assertNonDispatchThread()
37-
38-
return try {
39-
Log.log(logger::trace, project, "got get categories request")
40-
val categories = AnalyticsService.getInstance(project).getAssetCategories(queryParams)
41-
checkInsightExists()
42-
Log.log(logger::trace, project, "got categories [{}]", categories)
43-
categories
44-
} catch (e: AnalyticsServiceException) {
45-
Log.warnWithException(logger, project, e, "Error loading categories {}", e.message)
46-
"{ \"assetCategories\": [] }"
47-
}
37+
Log.log(logger::trace, project, "got get categories request")
38+
val categories = AnalyticsService.getInstance(project).getAssetCategories(queryParams)
39+
checkInsightExists()
40+
Log.log(logger::trace, project, "got categories [{}]", categories)
41+
return categories
4842
}
4943

5044

@@ -67,16 +61,10 @@ class AssetsService(private val project: Project) : Disposable {
6761

6862
fun getAssets(queryParams: MutableMap<String, Any>): String {
6963
EDT.assertNonDispatchThread()
70-
71-
return try {
72-
Log.log(logger::trace, project, "got get assets request")
73-
val assets = AnalyticsService.getInstance(project).getAssets(queryParams)
74-
Log.log(logger::trace, project, "got assets [{}]", assets)
75-
assets
76-
} catch (e: AnalyticsServiceException) {
77-
Log.warnWithException(logger, project, e, "Error loading assets {}", e.message)
78-
""
79-
}
64+
Log.log(logger::trace, project, "got get assets request")
65+
val assets = AnalyticsService.getInstance(project).getAssets(queryParams)
66+
Log.log(logger::trace, project, "got assets [{}]", assets)
67+
return assets
8068
}
8169

8270

src/main/kotlin/org/digma/intellij/plugin/ui/assets/model/SetAssetsDataMessage.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ package org.digma.intellij.plugin.ui.assets.model
22

33
import com.fasterxml.jackson.databind.JsonNode
44
import org.digma.intellij.plugin.ui.jcef.JCEFGlobalConstants
5+
import org.digma.intellij.plugin.ui.jcef.model.ErrorPayload
56

6-
data class SetAssetsDataMessage(val payload: JsonNode) {
7+
data class SetAssetsDataMessage(val payload: JsonNode,val error: ErrorPayload? = null) {
78
val type = JCEFGlobalConstants.REQUEST_MESSAGE_TYPE
89
val action = "ASSETS/SET_DATA"
910
}

src/main/kotlin/org/digma/intellij/plugin/ui/assets/model/SetCategoriesDataMessage.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ package org.digma.intellij.plugin.ui.assets.model
22

33
import com.fasterxml.jackson.databind.JsonNode
44
import org.digma.intellij.plugin.ui.jcef.JCEFGlobalConstants
5+
import org.digma.intellij.plugin.ui.jcef.model.ErrorPayload
56

67

7-
data class SetCategoriesDataMessage(val payload: JsonNode) {
8+
data class SetCategoriesDataMessage(val payload: JsonNode,val error: ErrorPayload? = null) {
89
val type = JCEFGlobalConstants.REQUEST_MESSAGE_TYPE
910
val action = "ASSETS/SET_CATEGORIES_DATA"
1011
}

src/main/kotlin/org/digma/intellij/plugin/ui/insights/InsightsService.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import org.digma.intellij.plugin.ui.insights.model.SetInsightsMarkAsReadMessage
2424
import org.digma.intellij.plugin.ui.insights.model.SetUnDismissedData
2525
import org.digma.intellij.plugin.ui.insights.model.SetUnDismissedMessage
2626
import org.digma.intellij.plugin.ui.jcef.JCefComponent
27+
import org.digma.intellij.plugin.ui.jcef.model.ErrorPayload
2728
import org.digma.intellij.plugin.ui.jcef.serializeAndExecuteWindowPostMessageJavaScript
2829

2930

@@ -49,18 +50,18 @@ class InsightsService(val project: Project) : InsightsServiceImpl(project) {
4950

5051
fun refreshInsightsList(backendQueryParams: MutableMap<String, Any>) {
5152

52-
val insightsResponse = try {
53+
val message = try {
5354
val insights = AnalyticsService.getInstance(project).getInsights(backendQueryParams)
5455
onInsightReceived(insights)
55-
insights
56+
SetInsightDataListMessage(insights)
5657
} catch (e: AnalyticsServiceException) {
5758
Log.debugWithException(logger, project, e, "Error loading insights {}", e.message)
58-
"{\"totalCount\":0,\"insights\":[]}"
59+
val error = ErrorPayload(e.meaningfulMessage)
60+
SetInsightDataListMessage("{\"totalCount\":0,\"insights\":[]}",error)
5961
}
6062

61-
val msg = SetInsightDataListMessage(insightsResponse)
6263
jCefComponent?.let {
63-
serializeAndExecuteWindowPostMessageJavaScript(it.jbCefBrowser.cefBrowser, msg)
64+
serializeAndExecuteWindowPostMessageJavaScript(it.jbCefBrowser.cefBrowser, message)
6465
}
6566
}
6667

src/main/kotlin/org/digma/intellij/plugin/ui/insights/model/SetInsightDataListMessage.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ package org.digma.intellij.plugin.ui.insights.model
22

33
import com.fasterxml.jackson.annotation.JsonRawValue
44
import org.digma.intellij.plugin.ui.jcef.JCEFGlobalConstants
5+
import org.digma.intellij.plugin.ui.jcef.model.ErrorPayload
56

6-
data class SetInsightDataListMessage( @JsonRawValue val payload: String) {
7+
data class SetInsightDataListMessage( @JsonRawValue val payload: String,val error: ErrorPayload? = null) {
78
val type = JCEFGlobalConstants.REQUEST_MESSAGE_TYPE
89
val action = "INSIGHTS/SET_DATA_LIST"
910
}

src/main/resources/webview/main/index.js

Lines changed: 87 additions & 87 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)