Skip to content

Commit

Permalink
Extracted out initModelContext so it's callable from apps
Browse files Browse the repository at this point in the history
  • Loading branch information
mpscholten committed Apr 8, 2022
1 parent 1d60cff commit c3acf98
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 8 deletions.
10 changes: 9 additions & 1 deletion IHP/FrameworkConfig.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)
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

8 changes: 1 addition & 7 deletions IHP/Server.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit c3acf98

Please sign in to comment.