diff --git a/c-historico/handler.cr b/c-historico/handler.cr
index cc571cf..d74a9fd 100644
--- a/c-historico/handler.cr
+++ b/c-historico/handler.cr
@@ -3,8 +3,38 @@ require "http/headers"
require "http/request"
require "ishi/html"
require "json"
+require "uuid"
class Handler
+ def format_buffer(buffer, canvas_name)
+ # Process the gnuplot output so it works in the page
+ #
+ # buffer is the Ishi output
+ # name is a string to replace for gnuplot_canvas so
+ # we can have multiple charts in a page
+
+ html = buffer.to_s.split("\n")
+ html = html[html.index("")]
+ html = html.join("\n") + %(
+
+
+
+
+
+ |
+
+
+
+ )
+ # This ID needs to be unique in case
+ # we have 2 charts in the same page
+ html.gsub("gnuplot_canvas", canvas_name)
+ end
+
def query(sql)
params = URI::Params.encode({"q": sql})
response = HTTP::Client.get URI.new(
@@ -70,27 +100,8 @@ class Handler
}
end
- # This is a whole page, we just need some bits
- html = buffer.to_s.split("\n")
- html = html[html.index("")]
- html = html.join("\n") + %(
-
-
-
-
-
- |
-
-
-
-)
-
{
- body: html,
+ body: format_buffer(buffer, "historico"),
status_code: 200,
headers: HTTP::Headers{"Content-Type" => "text/html"},
}