From ca5eb64debaf788bea0648c741634a65ebc81acd Mon Sep 17 00:00:00 2001 From: Laurence Isla Date: Tue, 28 Nov 2023 12:45:39 -0500 Subject: [PATCH] chore: fix server-timing metric order and doctest --- src/PostgREST/Response/Performance.hs | 10 +++++----- test/doc/Main.hs | 1 + 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/PostgREST/Response/Performance.hs b/src/PostgREST/Response/Performance.hs index 15bb324b0..f8531d6ef 100644 --- a/src/PostgREST/Response/Performance.hs +++ b/src/PostgREST/Response/Performance.hs @@ -13,24 +13,24 @@ import Protolude data ServerMetric = SMJwt | SMParse - | SMResp | SMPlan | SMTransaction + | SMResp deriving (Show, Eq, Ord) type ServerTimingData = Map ServerMetric (Maybe Double) -- | Render the Server-Timing header from a ServerTimingData -- --- >>> renderServerTimingHeader $ Map.fromList [(SMPlan, 0.1), (SMTransaction, 0.2), (SMResp, 0.3), (SMJwt, 0.4)] --- ("Server-Timing","jwt;dur=400000.0, render;dur=300000.0, plan;dur=100000.0, query;dur=200000.0") +-- >>> renderServerTimingHeader $ Map.fromList [(SMPlan, Just 0.1), (SMTransaction, Just 0.2), (SMResp, Just 0.3), (SMJwt, Just 0.4), (SMParse, Just 0.5)] +-- ("Server-Timing","jwt;dur=400000.0, parse;dur=500000.0, plan;dur=100000.0, transaction;dur=200000.0, response;dur=300000.0") renderServerTimingHeader :: ServerTimingData -> HTTP.Header renderServerTimingHeader timingData = ("Server-Timing", BS.intercalate ", " $ map renderTiming $ Map.toList timingData) renderTiming :: (ServerMetric, Maybe Double) -> BS.ByteString renderTiming (metric, time) = maybe "" (\x -> BS.concat [renderMetric metric, BS.pack $ ";dur=" <> showFFloat (Just 1) (x * 1000000) ""]) time where + renderMetric SMJwt = "jwt" + renderMetric SMParse = "parse" renderMetric SMPlan = "plan" renderMetric SMTransaction = "transaction" renderMetric SMResp = "response" - renderMetric SMJwt = "jwt" - renderMetric SMParse = "parse" diff --git a/test/doc/Main.hs b/test/doc/Main.hs index e43952ab1..482ab373a 100644 --- a/test/doc/Main.hs +++ b/test/doc/Main.hs @@ -16,6 +16,7 @@ main = , "src/PostgREST/Query/SqlFragment.hs" , "src/PostgREST/ApiRequest/Preferences.hs" , "src/PostgREST/ApiRequest/QueryParams.hs" + , "src/PostgREST/Response/Performance.hs" , "src/PostgREST/Error.hs" , "src/PostgREST/MediaType.hs" , "src/PostgREST/Config.hs"