From 055efe7abddf701d9f66d617d2aa1bfa2050f882 Mon Sep 17 00:00:00 2001 From: Taimoor Zaeem Date: Mon, 16 Feb 2026 11:41:13 +0500 Subject: [PATCH] refactor: move `Proxy-Status` header to error type class Headers that apply to all errors should all be in one place. Signed-off-by: Taimoor Zaeem --- src/PostgREST/Error.hs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/PostgREST/Error.hs b/src/PostgREST/Error.hs index 7d6a01d08..57ba2b4b4 100644 --- a/src/PostgREST/Error.hs +++ b/src/PostgREST/Error.hs @@ -65,8 +65,9 @@ class (ErrorBody a, JSON.ToJSON a) => PgrstError a where let baseHeader = MediaType.toContentType MTApplicationJSON cLHeader body = (,) "Content-Length" (show $ LBS.length body) :: Header + pSHeader code' = ("Proxy-Status", "PostgREST; error=" <> T.encodeUtf8 code') in - responseLBS (status err) (baseHeader : cLHeader (errorPayload err) : headers err) $ errorPayload err + responseLBS (status err) (baseHeader : cLHeader (errorPayload err) : pSHeader (code err) : headers err) $ errorPayload err class ErrorBody a where code :: a -> Text @@ -505,9 +506,6 @@ instance PgrstError PgError where then [("WWW-Authenticate", "Bearer") :: Header] else mempty -proxyStatusHeader :: Text -> Header -proxyStatusHeader code' = ("Proxy-Status", "PostgREST; error=" <> T.encodeUtf8 code') - instance JSON.ToJSON PgError where toJSON (PgError _ usageError) = toJsonPgrstError (code usageError) (message usageError) (details usageError) (hint usageError) @@ -683,11 +681,11 @@ instance PgrstError Error where status NoSchemaCacheError = HTTP.status503 status (PgErr err) = status err - headers (ApiRequestError err) = proxyStatusHeader (code err) : headers err - headers (SchemaCacheErr err) = proxyStatusHeader (code err) : headers err - headers (JwtErr err) = proxyStatusHeader (code err) : headers err - headers (PgErr err) = proxyStatusHeader (code err) : headers err - headers err@NoSchemaCacheError = proxyStatusHeader (code err) : mempty + headers (ApiRequestError err) = headers err + headers (SchemaCacheErr err) = headers err + headers (JwtErr err) = headers err + headers (PgErr err) = headers err + headers NoSchemaCacheError = mempty instance JSON.ToJSON Error where toJSON err = toJsonPgrstError