From c3acf9847bdcd3be63d76afdcf51c9a0949908b8 Mon Sep 17 00:00:00 2001 From: Marc Scholten Date: Thu, 7 Apr 2022 21:50:26 -0700 Subject: [PATCH] Extracted out initModelContext so it's callable from apps --- IHP/FrameworkConfig.hs | 10 +++++++++- IHP/Server.hs | 8 +------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/IHP/FrameworkConfig.hs b/IHP/FrameworkConfig.hs index f4c2f8682..5a8dce84e 100644 --- a/IHP/FrameworkConfig.hs +++ b/IHP/FrameworkConfig.hs @@ -21,6 +21,7 @@ import qualified Network.Wai.Parse as WaiParse import qualified System.Posix.Env.ByteString as Posix import Data.String.Interpolate.IsString (i) import qualified Control.Exception as Exception +import IHP.ModelSupport newtype AppHostname = AppHostname Text newtype AppPort = AppPort Int @@ -532,4 +533,11 @@ defaultCorsResourcePolicy = Nothing -- > -- Do something with the FrameworkConfig here -- withFrameworkConfig :: ConfigBuilder -> (FrameworkConfig -> IO result) -> IO result -withFrameworkConfig configBuilder = Exception.bracket (buildFrameworkConfig configBuilder) (\frameworkConfig -> frameworkConfig |> get #logger |> get #cleanup) \ No newline at end of file +withFrameworkConfig configBuilder = Exception.bracket (buildFrameworkConfig configBuilder) (\frameworkConfig -> frameworkConfig |> get #logger |> get #cleanup) + +initModelContext :: FrameworkConfig -> IO ModelContext +initModelContext FrameworkConfig { environment, dbPoolIdleTime, dbPoolMaxConnections, databaseUrl, logger } = do + let isDevelopment = environment == Development + modelContext <- createModelContext dbPoolIdleTime dbPoolMaxConnections databaseUrl logger + pure modelContext + diff --git a/IHP/Server.hs b/IHP/Server.hs index 0a3e7db2c..14424b4df 100644 --- a/IHP/Server.hs +++ b/IHP/Server.hs @@ -44,7 +44,7 @@ run configBuilder = do IO.setLocaleEncoding IO.utf8 withFrameworkConfig configBuilder \frameworkConfig -> do - modelContext <- initModelContext frameworkConfig + modelContext <- IHP.FrameworkConfig.initModelContext frameworkConfig let withPGListener = Exception.bracket (PGListener.init modelContext) PGListener.stop withPGListener \pgListener -> do @@ -152,12 +152,6 @@ initCorsMiddleware FrameworkConfig { corsResourcePolicy } = case corsResourcePol Just corsResourcePolicy -> Cors.cors (const (Just corsResourcePolicy)) Nothing -> id -initModelContext :: FrameworkConfig -> IO ModelContext -initModelContext FrameworkConfig { environment, dbPoolIdleTime, dbPoolMaxConnections, databaseUrl, logger } = do - let isDevelopment = environment == Env.Development - modelContext <- createModelContext dbPoolIdleTime dbPoolMaxConnections databaseUrl logger - pure modelContext - application :: (FrontController RootApplication, ?applicationContext :: ApplicationContext) => Application application request respond = do requestContext <- ControllerSupport.createRequestContext ?applicationContext request respond