From 6ad63e418bebd85348ebe7fd49d070d56cb843d4 Mon Sep 17 00:00:00 2001
From: Brent Oates <3065898+BrentOates@users.noreply.github.com>
Date: Sat, 4 May 2024 23:33:50 +0200
Subject: [PATCH] Add missing volumePerformance/spark/all endpoint (#434)

---
 .../Controllers/GraphController.Spark.cs             | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/Opserver.Web/Controllers/GraphController.Spark.cs b/src/Opserver.Web/Controllers/GraphController.Spark.cs
index 0c5b534ad..76297d3fe 100644
--- a/src/Opserver.Web/Controllers/GraphController.Spark.cs
+++ b/src/Opserver.Web/Controllers/GraphController.Spark.cs
@@ -167,6 +167,18 @@ public async Task<ActionResult> VolumeSpark(string direction, string id, string
             return SparkSVG(points, Convert.ToInt64(points.Max(getter)), p => getter(p));
         }
 
+        [OnlyAllow(DashboardRoles.Viewer)]
+        [ResponseCache(Duration = SparkGraphDuration, Location = ResponseCacheLocation.Client)]
+        [Route("graph/volumePerformance/spark/all"), AlsoAllow(Roles.InternalRequest)]
+        public Task<ActionResult> VolumeSparkSvgAll()
+        {
+            return SparkSvgAll(
+                "Volume",
+                getPoints: n => n.GetVolumePerformanceUtilization(SparkStart, null, SparkPoints),
+                getMax: (_, points) => Convert.ToInt64(points.Max(p => p.Value + p.BottomValue).GetValueOrDefault()),
+                getVal: p => (p.Value + p.BottomValue).GetValueOrDefault());
+        }
+
         [OnlyAllow(SQLRoles.Viewer)]
         [ResponseCache(Duration = SparkGraphDuration, VaryByQueryKeys = new string[] { "node" }, Location = ResponseCacheLocation.Client)]
         [Route("graph/sql/cpu/spark")]