Skip to content

Commit 361348a

Browse files
authored
Top insights highlights (#2004)
1 parent 4662e42 commit 361348a

File tree

7 files changed

+54
-1
lines changed

7 files changed

+54
-1
lines changed

analytics-provider/src/main/java/org/digma/intellij/plugin/analytics/AnalyticsProvider.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,4 +112,6 @@ public interface AnalyticsProvider extends Closeable {
112112
HttpResponse lowLevelCall(HttpRequest request);
113113

114114
List<HighlightsPerformanceResponse> getHighlightsPerformance(Map<String, Object> queryParams);
115+
116+
String getHighlightsTopInsights(Map<String, Object> queryParams);
115117
}

analytics-provider/src/main/java/org/digma/intellij/plugin/analytics/RestAnalyticsProvider.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,11 @@ public List<HighlightsPerformanceResponse> getHighlightsPerformance(Map<String,
296296
return execute(() -> client.analyticsProvider.getHighlightsPerformance(queryParams));
297297
}
298298

299+
@Override
300+
public String getHighlightsTopInsights(Map<String, Object> queryParams) {
301+
return execute(() -> client.analyticsProvider.getHighlightsTopInsights(queryParams));
302+
}
303+
299304
private static Request toOkHttp3Request(HttpRequest request){
300305
var okHttp3Body = request.getBody() != null
301306
? RequestBody.create(MediaType.parse(request.getBody().getContentType()), request.getBody().getContent())
@@ -797,6 +802,14 @@ Call<ResponseBody> setInsightCustomStartTime(
797802
})
798803
@GET("/highlights/performance")
799804
Call<List<HighlightsPerformanceResponse>> getHighlightsPerformance(@QueryMap Map<String, Object> fields);
805+
806+
@Headers({
807+
"Accept: application/+json",
808+
"Content-Type:application/json"
809+
})
810+
@GET("/highlights/topinsights")
811+
Call<String> getHighlightsTopInsights(@QueryMap Map<String, Object> fields);
812+
800813
}
801814

802815
}

ide-common/src/main/java/org/digma/intellij/plugin/analytics/AnalyticsService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,10 @@ public List<HighlightsPerformanceResponse> getHighlightsPerformance(@NotNull Map
382382
return executeCatching(() -> analyticsProviderProxy.getHighlightsPerformance(queryParams));
383383
}
384384

385+
public String getHighlightsTopInsights(@NotNull Map<String, Object> queryParams) throws AnalyticsServiceException {
386+
return executeCatching(() -> analyticsProviderProxy.getHighlightsTopInsights(queryParams));
387+
}
388+
385389
public Optional<LoadStatusResponse> getLoadStatus() throws AnalyticsServiceException {
386390
return executeCatching(() -> analyticsProviderProxy.getLoadStatus());
387391
}

ide-common/src/main/kotlin/org/digma/intellij/plugin/navigation/MainContentViewSwitcher.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ private constructor(
147147

148148
companion object {
149149

150+
val Highlights = View(title = "Highlights", id = "highlights", cardName = "highlights")
150151
val Insights = View(title = "Issues", id = "insights", cardName = "insights", isSelected = true)
151152
val Assets = View("Assets", "assets", "assets")
152153
val Errors = View("Errors", "errors", "errors")
@@ -155,7 +156,7 @@ private constructor(
155156
val Analytics = View("Analytics", "analytics", "analytics")
156157

157158

158-
val views = listOf(Insights, Assets, Analytics, Errors, ErrorDetails, Tests)
159+
val views = listOf(/*Highlights,*/ Insights, Assets, Analytics, Errors, ErrorDetails, Tests)
159160

160161
fun findById(id: String): View? {
161162
return views.find { it.id == id }

src/main/kotlin/org/digma/intellij/plugin/ui/highlights/HighlightsMessageRouterHandler.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import org.cef.browser.CefBrowser
77
import org.digma.intellij.plugin.insights.AbstractInsightsMessageRouterHandler
88
import org.digma.intellij.plugin.log.Log
99
import org.digma.intellij.plugin.ui.highlights.model.SetHighlightsPerformanceMessage
10+
import org.digma.intellij.plugin.ui.highlights.model.SetHighlightsTopInsightsMessage
1011
import org.digma.intellij.plugin.ui.jcef.getQueryMapFromPayload
1112
import org.digma.intellij.plugin.ui.jcef.serializeAndExecuteWindowPostMessageJavaScript
1213

@@ -16,6 +17,7 @@ class HighlightsMessageRouterHandler(project: Project) : AbstractInsightsMessage
1617

1718
when (action) {
1819
"HIGHLIGHTS/GET_PERFORMANCE" -> getHighlightsPerformance(browser, requestJsonNode)
20+
"MAIN/GET_HIGHLIGHTS_TOP_ISSUES_DATA" -> getHighlightsTopInsights(browser, requestJsonNode)
1921

2022
else -> {
2123
return super.doOnQuery(project, browser, requestJsonNode, rawRequest, action)
@@ -37,4 +39,14 @@ class HighlightsMessageRouterHandler(project: Project) : AbstractInsightsMessage
3739
Log.log(logger::trace, project, "sending HIGHLIGHTS/SET_PERFORMANCE message")
3840
serializeAndExecuteWindowPostMessageJavaScript(browser, message)
3941
}
42+
43+
private fun getHighlightsTopInsights(browser: CefBrowser, requestJsonNode: JsonNode) {
44+
Log.log(logger::trace, project, "getHighlightsTopInsights called")
45+
46+
val backendQueryParams = getQueryMapFromPayload(requestJsonNode, objectMapper)
47+
val payload = HighlightsService.getInstance(project).getHighlightsTopInsights(backendQueryParams)
48+
val message = SetHighlightsTopInsightsMessage(payload)
49+
Log.log(logger::trace, project, "sending HIGHLIGHTS/SET_PERFORMANCE message")
50+
serializeAndExecuteWindowPostMessageJavaScript(browser, message)
51+
}
4052
}

src/main/kotlin/org/digma/intellij/plugin/ui/highlights/HighlightsService.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,16 @@ class HighlightsService(val project: Project) : InsightsServiceImpl(project) {
3535
null
3636
}
3737
}
38+
39+
fun getHighlightsTopInsights(queryParams: MutableMap<String, Any>): String {
40+
EDT.assertNonDispatchThread()
41+
42+
return try {
43+
val highlightsPerformance = AnalyticsService.getInstance(project).getHighlightsTopInsights(queryParams)
44+
highlightsPerformance
45+
} catch (e: AnalyticsServiceException) {
46+
Log.warnWithException(logger, project, e, "Error loading highlights top insights {}", e.message)
47+
return "{}"
48+
}
49+
}
3850
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package org.digma.intellij.plugin.ui.highlights.model
2+
3+
import com.fasterxml.jackson.annotation.JsonRawValue
4+
import org.digma.intellij.plugin.ui.jcef.JCEFGlobalConstants
5+
6+
data class SetHighlightsTopInsightsMessage(@JsonRawValue val payload: String) {
7+
val type = JCEFGlobalConstants.REQUEST_MESSAGE_TYPE
8+
val action = "MAIN/SET_HIGHLIGHTS_TOP_ISSUES_DATA"
9+
}

0 commit comments

Comments
 (0)