servant-db-postgresql-0.2.2.0: Derive a postgres client to database API specified by servant-db

PortabilityPortable
Safe HaskellSafe
LanguageHaskell2010

Servant.DB.PostgreSQL.Default

Description

 

Synopsis

Documentation

newtype Default a Source #

Wrapper around Maybe to distinguish default arguments from nullable ones

Constructors

Default 

Fields

Instances

Eq a => Eq (Default a) Source # 

Methods

(==) :: Default a -> Default a -> Bool #

(/=) :: Default a -> Default a -> Bool #

Ord a => Ord (Default a) Source # 

Methods

compare :: Default a -> Default a -> Ordering #

(<) :: Default a -> Default a -> Bool #

(<=) :: Default a -> Default a -> Bool #

(>) :: Default a -> Default a -> Bool #

(>=) :: Default a -> Default a -> Bool #

max :: Default a -> Default a -> Default a #

min :: Default a -> Default a -> Default a #

Read a => Read (Default a) Source # 
Show a => Show (Default a) Source # 

Methods

showsPrec :: Int -> Default a -> ShowS #

show :: Default a -> String #

showList :: [Default a] -> ShowS #

Generic (Default a) Source # 

Associated Types

type Rep (Default a) :: * -> * #

Methods

from :: Default a -> Rep (Default a) x #

to :: Rep (Default a) x -> Default a #

(ToField a, HasDB api m) => HasDB ((:>) * * (ArgPos (Default a)) api) m Source #

Deriving call to DB procedure with positional default arguments

type API = ArgPos (Default Int) :> Procedure "foo" (Only Int)

data MyMonad m a -- Your application monad with connection pool and logger
instance HasPostgres m
instance MonadLogger m

dbFoo :: Default Int -> MyMonad (Only Int)
dbFoo = deriveDB (Proxy :: Proxy API) (Proxy :: Proxy MyMonad)

Upper example will derive the following SQL call:

>>> SELECT * FROM foo(DEFAULT) AS t;

Associated Types

type DB ((:>) * * (ArgPos (Default a)) api) (m :: * -> *) :: * Source #

Methods

deriveDBWithCtx :: Proxy * ((* :> *) (ArgPos (Default a)) api) -> Proxy (* -> *) m -> QueryContext ToField -> DB ((* :> *) (ArgPos (Default a)) api) m Source #

(KnownSymbol n, ToField a, HasDB api m) => HasDB ((:>) * * (ArgNamed n (Default a)) api) m Source #

Deriving call to DB procedure with named default arguments

type API = ArgNamed "a" (Defaultable Int) :> Procedure "foo" (Only Int)

data MyMonad m a -- Your application monad with connection pool and logger
instance HasPostgres m
instance MonadLogger m

dbFoo :: Defaultable Int -> MyMonad (Only Int)
dbFoo = deriveDB (Proxy :: Proxy API) (Proxy :: Proxy MyMonad)

Upper example will derive the following SQL call:

>>> SELECT * FROM default(DEFAULT) AS t;

Associated Types

type DB ((:>) * * (ArgNamed n (Default a)) api) (m :: * -> *) :: * Source #

Methods

deriveDBWithCtx :: Proxy * ((* :> *) (ArgNamed n (Default a)) api) -> Proxy (* -> *) m -> QueryContext ToField -> DB ((* :> *) (ArgNamed n (Default a)) api) m Source #

type Rep (Default a) Source # 
type Rep (Default a) = D1 (MetaData "Default" "Servant.DB.PostgreSQL.Default" "servant-db-postgresql-0.2.2.0-CTbjaIKTSkuAtbfEolbg6O" True) (C1 (MetaCons "Default" PrefixI True) (S1 (MetaSel (Just Symbol "unDefault") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe a))))
type DB ((:>) * * (ArgPos (Default a)) api) m Source # 
type DB ((:>) * * (ArgPos (Default a)) api) m = Default a -> DB api m
type DB ((:>) * * (ArgNamed n (Default a)) api) m Source # 
type DB ((:>) * * (ArgNamed n (Default a)) api) m = Default a -> DB api m