@@ -4,12 +4,14 @@ import com.fasterxml.jackson.core.JsonProcessingException
44import com.fasterxml.jackson.databind.JsonNode
55import com.intellij.openapi.project.Project
66import org.cef.browser.CefBrowser
7+ import org.digma.intellij.plugin.analytics.AnalyticsServiceException
78import org.digma.intellij.plugin.log.Log
89import org.digma.intellij.plugin.ui.assets.model.SetAssetsDataFiltersMessage
910import org.digma.intellij.plugin.ui.assets.model.SetAssetsDataMessage
1011import org.digma.intellij.plugin.ui.assets.model.SetCategoriesDataMessage
1112import org.digma.intellij.plugin.ui.jcef.BaseCommonMessageRouterHandler
1213import org.digma.intellij.plugin.ui.jcef.getQueryMapFromPayload
14+ import org.digma.intellij.plugin.ui.jcef.model.ErrorPayload
1315import org.digma.intellij.plugin.ui.jcef.serializeAndExecuteWindowPostMessageJavaScript
1416
1517class 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 }
0 commit comments