Selda schema for database
This commit is contained in:
27
src/Database.hs
Normal file
27
src/Database.hs
Normal file
@ -0,0 +1,27 @@
|
||||
{-# Language TypeApplications #-}
|
||||
{-# Language DataKinds #-}
|
||||
{-# Language FlexibleContexts #-}
|
||||
{-# Language ConstraintKinds #-}
|
||||
module Database
|
||||
( DBLike
|
||||
, runDB
|
||||
, query
|
||||
, select
|
||||
, gen )
|
||||
where
|
||||
|
||||
import Data.Generics.Product
|
||||
import Control.Lens (view)
|
||||
import Data.Pool (Pool, withResource)
|
||||
import Database.Selda.Backend (SeldaConnection, runSeldaT, SeldaT)
|
||||
import Database.Selda (query, select)
|
||||
import Database.Selda.Generic (gen)
|
||||
import ClassyPrelude
|
||||
|
||||
type DBLike r m = (MonadIO m, MonadReader r m, MonadBaseControl IO m, MonadMask m, HasField' "database" r (Pool SeldaConnection))
|
||||
|
||||
runDB :: DBLike r m => SeldaT m a -> m a
|
||||
runDB q = do
|
||||
pool <- view (field @"database")
|
||||
withResource pool $ \conn ->
|
||||
runSeldaT q conn
|
Reference in New Issue
Block a user