From 3f78615dff51f680b141c3063a328487efe29e29 Mon Sep 17 00:00:00 2001 From: "M. Taimoor Zaeem" Date: Tue, 4 Feb 2025 17:27:33 +0500 Subject: [PATCH] refactor: move AuthResult to Auth/Types.hs module The `AuthResult` type does not belong to AppState module. This commit refactor this by moving it to a new module `Auth/Types.hs`. --- postgrest.cabal | 1 + src/PostgREST/App.hs | 2 +- src/PostgREST/AppState.hs | 9 +-------- src/PostgREST/Auth.hs | 14 +++++++------- src/PostgREST/Auth/Types.hs | 13 +++++++++++++ src/PostgREST/Query.hs | 2 +- 6 files changed, 24 insertions(+), 17 deletions(-) create mode 100644 src/PostgREST/Auth/Types.hs diff --git a/postgrest.cabal b/postgrest.cabal index 321893757..0cd6f101f 100644 --- a/postgrest.cabal +++ b/postgrest.cabal @@ -49,6 +49,7 @@ library PostgREST.App PostgREST.AppState PostgREST.Auth + PostgREST.Auth.Types PostgREST.CLI PostgREST.Config PostgREST.Config.Database diff --git a/src/PostgREST/App.hs b/src/PostgREST/App.hs index 99febebac..613c64127 100644 --- a/src/PostgREST/App.hs +++ b/src/PostgREST/App.hs @@ -42,7 +42,7 @@ import qualified PostgREST.Unix as Unix (installSignalHandlers) import PostgREST.ApiRequest (ApiRequest (..)) import PostgREST.AppState (AppState) -import PostgREST.Auth (AuthResult (..)) +import PostgREST.Auth.Types (AuthResult (..)) import PostgREST.Config (AppConfig (..), LogLevel (..)) import PostgREST.Config.PgVersion (PgVersion (..)) import PostgREST.Error (Error) diff --git a/src/PostgREST/AppState.hs b/src/PostgREST/AppState.hs index c52c63d2a..f5f0bd36e 100644 --- a/src/PostgREST/AppState.hs +++ b/src/PostgREST/AppState.hs @@ -4,7 +4,6 @@ module PostgREST.AppState ( AppState - , AuthResult(..) , destroy , getConfig , getSchemaCache @@ -31,8 +30,6 @@ module PostgREST.AppState , isPending ) where -import qualified Data.Aeson as JSON -import qualified Data.Aeson.KeyMap as KM import qualified Data.ByteString.Char8 as BS import qualified Data.Cache as C import Data.Either.Combinators (whenLeft) @@ -60,6 +57,7 @@ import Data.IORef (IORef, atomicWriteIORef, newIORef, readIORef) import Data.Time.Clock (UTCTime, getCurrentTime) +import PostgREST.Auth.Types (AuthResult) import PostgREST.Config (AppConfig (..), addFallbackAppName, readAppConfig) @@ -78,11 +76,6 @@ import Data.Streaming.Network (bindPortTCP, bindRandomPortTCP) import Data.String (IsString (..)) import Protolude -data AuthResult = AuthResult - { authClaims :: KM.KeyMap JSON.Value - , authRole :: BS.ByteString - } - data AppState = AppState -- | Database connection pool { statePool :: SQL.Pool diff --git a/src/PostgREST/Auth.hs b/src/PostgREST/Auth.hs index bbef5f822..51a3d81af 100644 --- a/src/PostgREST/Auth.hs +++ b/src/PostgREST/Auth.hs @@ -12,8 +12,7 @@ very simple authentication system inside the PostgreSQL database. -} {-# LANGUAGE RecordWildCards #-} module PostgREST.Auth - ( AuthResult (..) - , getResult + ( getResult , getJwtDur , getRole , middleware @@ -45,11 +44,12 @@ import System.Clock (TimeSpec (..)) import System.IO.Unsafe (unsafePerformIO) import System.TimeIt (timeItT) -import PostgREST.AppState (AppState, AuthResult (..), getConfig, - getJwtCache, getTime) -import PostgREST.Config (AppConfig (..), FilterExp (..), JSPath, - JSPathExp (..)) -import PostgREST.Error (Error (..)) +import PostgREST.AppState (AppState, getConfig, getJwtCache, + getTime) +import PostgREST.Auth.Types (AuthResult (..)) +import PostgREST.Config (AppConfig (..), FilterExp (..), JSPath, + JSPathExp (..)) +import PostgREST.Error (Error (..)) import Protolude diff --git a/src/PostgREST/Auth/Types.hs b/src/PostgREST/Auth/Types.hs new file mode 100644 index 000000000..2e90f2d68 --- /dev/null +++ b/src/PostgREST/Auth/Types.hs @@ -0,0 +1,13 @@ +module PostgREST.Auth.Types + ( AuthResult (..) ) + where + +import qualified Data.Aeson as JSON +import qualified Data.Aeson.KeyMap as KM +import qualified Data.ByteString as BS + +-- | Parse result for JWT Claims +data AuthResult = AuthResult + { authClaims :: KM.KeyMap JSON.Value + , authRole :: BS.ByteString + } diff --git a/src/PostgREST/Query.hs b/src/PostgREST/Query.hs index 17c585470..15ae7d6f8 100644 --- a/src/PostgREST/Query.hs +++ b/src/PostgREST/Query.hs @@ -37,7 +37,7 @@ import PostgREST.ApiRequest.Preferences (PreferCount (..), PreferTransaction (..), Preferences (..), shouldCount) -import PostgREST.Auth (AuthResult (..)) +import PostgREST.Auth.Types (AuthResult (..)) import PostgREST.Config (AppConfig (..), OpenAPIMode (..)) import PostgREST.Config.PgVersion (PgVersion (..))