module IHP.RequestVault
(
module IHP.RequestVault.Helper
, module IHP.RequestVault.ModelContext
, frameworkConfigVaultKey
, frameworkConfigMiddleware
, requestFrameworkConfig
, pgListenerVaultKey
, pgListenerMiddleware
, requestPGListener
) where
import IHP.Prelude
import Network.Wai
import System.IO.Unsafe (unsafePerformIO)
import qualified Data.Vault.Lazy as Vault
import IHP.FrameworkConfig
import IHP.PGListener
import IHP.RequestVault.Helper
import IHP.RequestVault.ModelContext
frameworkConfigVaultKey :: Vault.Key FrameworkConfig
frameworkConfigVaultKey :: Key FrameworkConfig
frameworkConfigVaultKey = IO (Key FrameworkConfig) -> Key FrameworkConfig
forall a. IO a -> a
unsafePerformIO IO (Key FrameworkConfig)
forall a. IO (Key a)
Vault.newKey
{-# NOINLINE frameworkConfigVaultKey #-}
{-# INLINE frameworkConfigMiddleware #-}
frameworkConfigMiddleware :: FrameworkConfig -> Middleware
frameworkConfigMiddleware :: FrameworkConfig -> Middleware
frameworkConfigMiddleware = Key FrameworkConfig -> FrameworkConfig -> Middleware
forall value. Key value -> value -> Middleware
insertVaultMiddleware Key FrameworkConfig
frameworkConfigVaultKey
{-# INLINE requestFrameworkConfig #-}
requestFrameworkConfig :: Request -> FrameworkConfig
requestFrameworkConfig :: Request -> FrameworkConfig
requestFrameworkConfig = Key FrameworkConfig -> Request -> FrameworkConfig
forall value. Typeable value => Key value -> Request -> value
lookupRequestVault Key FrameworkConfig
frameworkConfigVaultKey
pgListenerVaultKey :: Vault.Key PGListener
pgListenerVaultKey :: Key PGListener
pgListenerVaultKey = IO (Key PGListener) -> Key PGListener
forall a. IO a -> a
unsafePerformIO IO (Key PGListener)
forall a. IO (Key a)
Vault.newKey
{-# NOINLINE pgListenerVaultKey #-}
{-# INLINE pgListenerMiddleware #-}
pgListenerMiddleware :: PGListener -> Middleware
pgListenerMiddleware :: PGListener -> Middleware
pgListenerMiddleware = Key PGListener -> PGListener -> Middleware
forall value. Key value -> value -> Middleware
insertVaultMiddleware Key PGListener
pgListenerVaultKey
{-# INLINE requestPGListener #-}
requestPGListener :: Request -> PGListener
requestPGListener :: Request -> PGListener
requestPGListener = Key PGListener -> Request -> PGListener
forall value. Typeable value => Key value -> Request -> value
lookupRequestVault Key PGListener
pgListenerVaultKey
instance HasField "frameworkConfig" Request FrameworkConfig where
{-# INLINE getField #-}
getField :: Request -> FrameworkConfig
getField Request
request = Request -> FrameworkConfig
requestFrameworkConfig Request
request
instance HasField "pgListener" Request PGListener where
{-# INLINE getField #-}
getField :: Request -> PGListener
getField Request
request = Request -> PGListener
requestPGListener Request
request