-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Easily define multiple interrelated data types
--
-- A user-friendly web development tool that can easily define multiple
-- interrelated data types
@package tedious-web
@version 0.2.1.4
module Tedious.Util
upperFirst :: String -> String
lowerFirst :: String -> String
trimPrefixName :: String -> String -> String
trimPrefixName_ :: String -> String -> String
toJSONOptions :: Options
schemaOptions :: SchemaOptions
module Tedious.Quasi
-- | QuasiQuote tedious' ABNF: tedious_str = *WSP indent_block indent_block
-- = type_info 1*type_field type_info = type_name *type_attr [comment]
-- end_of_line type_name = name_upper type_attr = 1*WSP (type_attr_table
-- / type_attr_deriv) type_attr_table = "table" 1*WSP table_info
-- table_info = table_name / "(" *WSP table_schema *WSP "," *WSP
-- table_name *WSP ")" table_schema = name table_name = name
-- type_attr_deriv = "deriving" 1*(1*WSP name_upper) type_field = 1*WSP
-- field_name [field_desc] field_table *ext_type [comment] end_of_line
-- field_name = name_lower field_desc = 1*WSP "`" *VCHAR "`" field_table
-- = 1*WSP (field_type / field_type_var) field_type = (field_type_paren /
-- field_type_proto) ["?"] [field_samp] [opaleye_type] ["#"]
-- *table_unique field_type_paren = "(" *WSP field_type_proto *WSP ")"
-- field_type_proto = field_type_array field_type_tuple
-- field_type_combo field_type_array = "[" *WSP field_type_proto *WSP "]"
-- field_type_tuple = "(" *WSP field_type_proto *field_type_tuple_part
-- *WSP ")" field_type_tuple_part = *WSP "," *WSP field_type_proto
-- field_type_combo = field_type_plain *(1*WSP field_type_proto)
-- field_type_plain = name_upper *(1*WSP name_upper) field_type_var =
-- name_lower ["?"] field_samp = 1*WSP "`" *VCHAR "`" opaleye_type =
-- 1*WSP "(" *WSP opaleye_r opaleye_nr opaleye_wr / opaleye_nwr
-- *WSP ")" opaleye_r = field_type_combo opaleye_nr = DQUOTE *VCHAR
-- DQUOTE *WSP "," *WSP field_type_combo opaleye_wr = field_type_combo
-- *WSP "," *WSP field_type_combo opaleye_nwr = DQUOTE *VCHAR DQUOTE *WSP
-- "," *WSP field_type_combo *WSP "," *WSP field_type_combo table_unique
-- = 1*WSP "!" name ext_type = 1*WSP name_upper [ext_type_var]
-- ext_type_var = ":" name_lower char_name = ALPHA DIGIT "_" /
-- "'" alpha_upper = A-Z alpha_lower = a-z name = 1*char_name name_upper
-- = alpha_upper 1*char_name name_lower = alpha_lower 1*char_name comment
-- = "-" "-" *VCHAR end_of_line = *WSP 1*CRLF
tedious :: QuasiQuoter
module Tedious.Entity
data Page
Page :: Natural -> Natural -> Page
[_pageIndex] :: Page -> Natural
[_pageSize] :: Page -> Natural
data PageO a
PageO :: Page -> Natural -> a -> PageO a
[_pageOPage] :: PageO a -> Page
[_pageOTotal] :: PageO a -> Natural
[_pageOData] :: PageO a -> a
data PageI a
PageI :: Maybe Page -> Maybe a -> PageI a
[_pageIPage] :: PageI a -> Maybe Page
[_pageIFilter] :: PageI a -> Maybe a
data Rep a
Rep :: Natural -> Text -> Maybe a -> Rep a
[_repCode] :: Rep a -> Natural
[_repMessage] :: Rep a -> Text
[_repData] :: Rep a -> Maybe a
data Err
Err :: Natural -> Text -> Err
[_errCode] :: Err -> Natural
[_errMessage] :: Err -> Text
data SysAdmin
SysAdmin :: Text -> Text -> SysAdmin
[_sysAdminName] :: SysAdmin -> Text
[_sysAdminPass] :: SysAdmin -> Text
data SysUser
SysUser :: Text -> Text -> SysUser
[_sysUserName] :: SysUser -> Text
[_sysUserPass] :: SysUser -> Text
data SysOper'
SysOper' :: Text -> Text -> Maybe Text -> SysOper'
[_sysOper'Name] :: SysOper' -> Text
[_sysOper'Target] :: SysOper' -> Text
[_sysOper'Content] :: SysOper' -> Maybe Text
data SysOper
SysOper :: Int64 -> Maybe Text -> Text -> Text -> Maybe Text -> UTCTime -> SysOper
[_sysOperId] :: SysOper -> Int64
[_sysOperUser] :: SysOper -> Maybe Text
[_sysOperName] :: SysOper -> Text
[_sysOperTarget] :: SysOper -> Text
[_sysOperContent] :: SysOper -> Maybe Text
[_sysOperTime] :: SysOper -> UTCTime
tediousPersistString :: String
sysOperTable :: Table (Maybe (Field SqlInt8), Maybe (FieldNullable SqlText), Field SqlText, Field SqlText, Maybe (FieldNullable SqlText), Maybe (Field SqlTimestamptz)) (Field SqlInt8, FieldNullable SqlText, Field SqlText, Field SqlText, FieldNullable SqlText, Field SqlTimestamptz)
sysUserTable :: Table (Field SqlText, Field SqlText) (Field SqlText, Field SqlText)
sysOperUser :: Lens' SysOper (Maybe Text)
sysOperTime :: Lens' SysOper UTCTime
sysOperTarget :: Lens' SysOper Text
sysOperName :: Lens' SysOper Text
sysOperId :: Lens' SysOper Int64
sysOperContent :: Lens' SysOper (Maybe Text)
sysOper'Target :: Lens' SysOper' Text
sysOper'Name :: Lens' SysOper' Text
sysOper'Content :: Lens' SysOper' (Maybe Text)
sysUserPass :: Lens' SysUser Text
sysUserName :: Lens' SysUser Text
sysAdminPass :: Lens' SysAdmin Text
sysAdminName :: Lens' SysAdmin Text
errMessage :: Lens' Err Text
errCode :: Lens' Err Natural
repMessage :: forall a. Lens' (Rep a) Text
repData :: forall a a_aFOr. Lens (Rep a_aFOr) (Rep a_aFOr) (Maybe a_aFOr) (Maybe a_aFOr)
repCode :: forall a. Lens' (Rep a) Natural
pageIPage :: forall a. Lens' (PageI a) (Maybe Page)
pageIFilter :: forall a a_aFOi. Lens (PageI a_aFOi) (PageI a_aFOi) (Maybe a_aFOi) (Maybe a_aFOi)
pageOTotal :: forall a. Lens' (PageO a) Natural
pageOPage :: forall a. Lens' (PageO a) Page
pageOData :: forall a a_aFO2. Lens (PageO a_aFO2) (PageO a_aFO2) a_aFO2 a_aFO2
pageSize :: Lens' Page Natural
pageIndex :: Lens' Page Natural
fillPage :: Page -> Natural -> b -> PageO b
repOk :: Rep a
rep :: a -> Rep a
repErr :: Natural -> Text -> Rep a
repErr' :: Err -> Rep a
repErrNotSupport :: Rep a
catchRep :: Eff (Error Err : es) (Rep a) -> Eff es (Rep a)
type SysOperTargetName = Text
instance GHC.Show.Show Tedious.Entity.Page
instance GHC.Classes.Eq Tedious.Entity.Page
instance GHC.Generics.Generic Tedious.Entity.Page
instance Data.Default.Class.Default Tedious.Entity.Page
instance GHC.Show.Show a => GHC.Show.Show (Tedious.Entity.PageO a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Tedious.Entity.PageO a)
instance GHC.Generics.Generic (Tedious.Entity.PageO a)
instance Data.Default.Class.Default a => Data.Default.Class.Default (Tedious.Entity.PageO a)
instance GHC.Show.Show a => GHC.Show.Show (Tedious.Entity.PageI a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Tedious.Entity.PageI a)
instance GHC.Generics.Generic (Tedious.Entity.PageI a)
instance Data.Default.Class.Default a => Data.Default.Class.Default (Tedious.Entity.PageI a)
instance GHC.Show.Show a => GHC.Show.Show (Tedious.Entity.Rep a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Tedious.Entity.Rep a)
instance GHC.Generics.Generic (Tedious.Entity.Rep a)
instance Data.Default.Class.Default a => Data.Default.Class.Default (Tedious.Entity.Rep a)
instance GHC.Show.Show Tedious.Entity.Err
instance GHC.Classes.Eq Tedious.Entity.Err
instance GHC.Generics.Generic Tedious.Entity.Err
instance Data.Default.Class.Default Tedious.Entity.Err
instance GHC.Exception.Type.Exception Tedious.Entity.Err
instance GHC.Show.Show Tedious.Entity.SysAdmin
instance GHC.Classes.Eq Tedious.Entity.SysAdmin
instance GHC.Generics.Generic Tedious.Entity.SysAdmin
instance Data.Default.Class.Default Tedious.Entity.SysAdmin
instance GHC.Show.Show Tedious.Entity.SysUser
instance GHC.Classes.Eq Tedious.Entity.SysUser
instance GHC.Generics.Generic Tedious.Entity.SysUser
instance Data.Default.Class.Default Tedious.Entity.SysUser
instance GHC.Show.Show Tedious.Entity.SysOper'
instance GHC.Classes.Eq Tedious.Entity.SysOper'
instance GHC.Generics.Generic Tedious.Entity.SysOper'
instance Data.Default.Class.Default Tedious.Entity.SysOper'
instance GHC.Show.Show Tedious.Entity.SysOper
instance GHC.Classes.Eq Tedious.Entity.SysOper
instance GHC.Generics.Generic Tedious.Entity.SysOper
instance Data.Default.Class.Default Tedious.Entity.SysOper
instance Data.Aeson.Types.ToJSON.ToJSON Tedious.Entity.SysOper
instance Data.Aeson.Types.FromJSON.FromJSON Tedious.Entity.SysOper
instance Data.OpenApi.Internal.Schema.ToSchema Tedious.Entity.SysOper
instance Data.Aeson.Types.ToJSON.ToJSON Tedious.Entity.SysOper'
instance Data.Aeson.Types.FromJSON.FromJSON Tedious.Entity.SysOper'
instance Data.OpenApi.Internal.Schema.ToSchema Tedious.Entity.SysOper'
instance Data.Aeson.Types.ToJSON.ToJSON Tedious.Entity.SysUser
instance Data.Aeson.Types.FromJSON.FromJSON Tedious.Entity.SysUser
instance Data.OpenApi.Internal.Schema.ToSchema Tedious.Entity.SysUser
instance Data.Aeson.Types.ToJSON.ToJSON Tedious.Entity.SysAdmin
instance Data.Aeson.Types.FromJSON.FromJSON Tedious.Entity.SysAdmin
instance Data.OpenApi.Internal.Schema.ToSchema Tedious.Entity.SysAdmin
instance Data.Aeson.Types.ToJSON.ToJSON Tedious.Entity.Err
instance Data.Aeson.Types.FromJSON.FromJSON Tedious.Entity.Err
instance Data.OpenApi.Internal.Schema.ToSchema Tedious.Entity.Err
instance (GHC.Generics.Generic (Tedious.Entity.Rep a), Data.Aeson.Types.ToJSON.GToJSON' Data.Aeson.Types.Internal.Value Data.Aeson.Types.Generic.Zero (GHC.Generics.Rep (Tedious.Entity.Rep a)), Data.Aeson.Types.ToJSON.GToJSON' Data.Aeson.Encoding.Internal.Encoding Data.Aeson.Types.Generic.Zero (GHC.Generics.Rep (Tedious.Entity.Rep a))) => Data.Aeson.Types.ToJSON.ToJSON (Tedious.Entity.Rep a)
instance (GHC.Generics.Generic (Tedious.Entity.Rep a), Data.Aeson.Types.FromJSON.GFromJSON Data.Aeson.Types.Generic.Zero (GHC.Generics.Rep (Tedious.Entity.Rep a))) => Data.Aeson.Types.FromJSON.FromJSON (Tedious.Entity.Rep a)
instance (Data.Default.Class.Default a, Data.Aeson.Types.ToJSON.ToJSON a, Data.OpenApi.Internal.Schema.ToSchema a) => Data.OpenApi.Internal.Schema.ToSchema (Tedious.Entity.Rep a)
instance (GHC.Generics.Generic (Tedious.Entity.PageI a), Data.Aeson.Types.ToJSON.GToJSON' Data.Aeson.Types.Internal.Value Data.Aeson.Types.Generic.Zero (GHC.Generics.Rep (Tedious.Entity.PageI a)), Data.Aeson.Types.ToJSON.GToJSON' Data.Aeson.Encoding.Internal.Encoding Data.Aeson.Types.Generic.Zero (GHC.Generics.Rep (Tedious.Entity.PageI a))) => Data.Aeson.Types.ToJSON.ToJSON (Tedious.Entity.PageI a)
instance (GHC.Generics.Generic (Tedious.Entity.PageI a), Data.Aeson.Types.FromJSON.GFromJSON Data.Aeson.Types.Generic.Zero (GHC.Generics.Rep (Tedious.Entity.PageI a))) => Data.Aeson.Types.FromJSON.FromJSON (Tedious.Entity.PageI a)
instance (Data.Default.Class.Default a, Data.Aeson.Types.ToJSON.ToJSON a, Data.OpenApi.Internal.Schema.ToSchema a) => Data.OpenApi.Internal.Schema.ToSchema (Tedious.Entity.PageI a)
instance (GHC.Generics.Generic (Tedious.Entity.PageO a), Data.Aeson.Types.ToJSON.GToJSON' Data.Aeson.Types.Internal.Value Data.Aeson.Types.Generic.Zero (GHC.Generics.Rep (Tedious.Entity.PageO a)), Data.Aeson.Types.ToJSON.GToJSON' Data.Aeson.Encoding.Internal.Encoding Data.Aeson.Types.Generic.Zero (GHC.Generics.Rep (Tedious.Entity.PageO a))) => Data.Aeson.Types.ToJSON.ToJSON (Tedious.Entity.PageO a)
instance (GHC.Generics.Generic (Tedious.Entity.PageO a), Data.Aeson.Types.FromJSON.GFromJSON Data.Aeson.Types.Generic.Zero (GHC.Generics.Rep (Tedious.Entity.PageO a))) => Data.Aeson.Types.FromJSON.FromJSON (Tedious.Entity.PageO a)
instance (Data.Default.Class.Default a, Data.Aeson.Types.ToJSON.ToJSON a, Data.OpenApi.Internal.Schema.ToSchema a) => Data.OpenApi.Internal.Schema.ToSchema (Tedious.Entity.PageO a)
instance Data.Aeson.Types.ToJSON.ToJSON Tedious.Entity.Page
instance Data.Aeson.Types.FromJSON.FromJSON Tedious.Entity.Page
instance Data.OpenApi.Internal.Schema.ToSchema Tedious.Entity.Page
module Tedious.Handler
withDoc :: Handler h m => Summary -> Description -> Middleware h ts ts
withDoc' :: Handler h m => Summary -> Middleware h ts ts
errorHandler :: (Show e, StdHandler h m, Sets h '[RequiredResponseHeader "Content-Type" Text, Body JSON (Rep ())]) => h (Request `With` ts, e) Response
authFail :: StdHandler h (Eff es) => h (Request `With` ts, BasicAuthError ()) Response
audit :: forall eff env es h ts. (Reader env :> es, IOE :> es, eff ~ Eff es, StdHandler h eff) => (env -> Pool Connection) -> Maybe Text -> (RequestHandler h ts, SysOper') -> RequestHandler h ts
list :: forall i d f ids wfs rfs r eff env es h ts. (ids ~ [i], Integral i, DefaultFromField SqlInt8 i, Default Unpackspec rfs rfs, Default FromFields rfs r, Reader env :> es, IOE :> es, eff ~ Eff es, StdHandler h eff, Gets h '[Body JSON (PageI f)], Sets h '[RequiredResponseHeader "Content-Type" Text, Body JSON (Rep (PageO [d])), Body JSON (Rep ())]) => (env -> Pool Connection) -> Table wfs rfs -> (Maybe f -> rfs -> Field SqlBool) -> Order rfs -> (r -> d) -> (RequestHandler h ts, SysOper')
list' :: forall i d f ids rfs r eff env es h ts. (ids ~ [i], Integral i, DefaultFromField SqlInt8 i, Default FromFields rfs r, Reader env :> es, IOE :> es, eff ~ Eff es, StdHandler h eff, Gets h '[Body JSON (PageI f)], Sets h '[RequiredResponseHeader "Content-Type" Text, Body JSON (Rep (PageO [d])), Body JSON (Rep ())]) => SysOperTargetName -> (env -> Pool Connection) -> Select rfs -> (Maybe f -> rfs -> Field SqlBool) -> Order rfs -> (r -> d) -> (RequestHandler h ts, SysOper')
get :: forall i fi d wfs rfs r eff env es h ts. (Default Unpackspec rfs rfs, Default FromFields rfs r, Sel1 rfs (Field fi), Reader env :> es, IOE :> es, eff ~ Eff es, StdHandler h eff, HaveTraits '[PathVar "id" i] ts, Sets h '[RequiredResponseHeader "Content-Type" Text, Body JSON (Rep (Maybe d))]) => (env -> Pool Connection) -> Table wfs rfs -> (i -> Field fi) -> (r -> d) -> (RequestHandler h ts, SysOper')
get' :: forall i d eff env es h ts. (Reader env :> es, IOE :> es, eff ~ Eff es, StdHandler h eff, HaveTraits '[PathVar "id" i] ts, Sets h '[RequiredResponseHeader "Content-Type" Text, Body JSON (Rep (Maybe d))]) => SysOperTargetName -> (env -> Pool Connection) -> (Connection -> i -> IO (Maybe d)) -> (RequestHandler h ts, SysOper')
add :: forall i fi a wfs rfs eff env es h ts. (Sel1 rfs (Field fi), DefaultFromField fi i, Reader env :> es, IOE :> es, eff ~ Eff es, StdHandler h eff, Gets h '[Body JSON a], Sets h '[RequiredResponseHeader "Content-Type" Text, Body JSON (Rep i), Body JSON (Rep ())]) => (env -> Pool Connection) -> Table wfs rfs -> (a -> [wfs]) -> (RequestHandler h ts, SysOper')
add' :: forall i a eff env es h ts. (Reader env :> es, IOE :> es, eff ~ Eff es, StdHandler h eff, Gets h '[Body JSON a], Sets h '[RequiredResponseHeader "Content-Type" Text, Body JSON (Rep i), Body JSON (Rep ())]) => SysOperTargetName -> (env -> Pool Connection) -> (Connection -> a -> IO i) -> (RequestHandler h ts, SysOper')
dup :: forall i fi wfs rfs r eff env es h ts. (Default Unpackspec rfs rfs, Default FromFields rfs r, Sel1 rfs (Field fi), DefaultFromField fi i, Reader env :> es, IOE :> es, eff ~ Eff es, StdHandler h eff, HaveTraits '[PathVar "id" i] ts, Sets h '[RequiredResponseHeader "Content-Type" Text, Body JSON (Rep i), Body JSON (Rep ())]) => (env -> Pool Connection) -> Table wfs rfs -> (i -> Field fi) -> (r -> wfs) -> (RequestHandler h ts, SysOper')
dup' :: forall i eff env es h ts. (Reader env :> es, IOE :> es, eff ~ Eff es, StdHandler h eff, HaveTraits '[PathVar "id" i] ts, Sets h '[RequiredResponseHeader "Content-Type" Text, Body JSON (Rep i), Body JSON (Rep ())]) => SysOperTargetName -> (env -> Pool Connection) -> (Connection -> i -> IO i) -> (RequestHandler h ts, SysOper')
upd :: forall i fi u wfs rfs d r eff env es h ts. (Sel1 rfs (Field fi), Default FromFields rfs r, Reader env :> es, IOE :> es, eff ~ Eff es, StdHandler h eff, HaveTraits '[PathVar "id" i] ts, Gets h '[Body JSON u], Sets h '[RequiredResponseHeader "Content-Type" Text, Body JSON (Rep d), Body JSON (Rep ())]) => (env -> Pool Connection) -> Table wfs rfs -> (i -> Field fi) -> (u -> rfs -> wfs) -> (r -> d) -> (RequestHandler h ts, SysOper')
upd' :: forall i u d eff env es h ts. (Reader env :> es, IOE :> es, eff ~ Eff es, StdHandler h eff, HaveTraits '[PathVar "id" i] ts, Gets h '[Body JSON u], Sets h '[RequiredResponseHeader "Content-Type" Text, Body JSON (Rep d), Body JSON (Rep ())]) => SysOperTargetName -> (env -> Pool Connection) -> (Connection -> i -> u -> IO d) -> (RequestHandler h ts, SysOper')
del :: forall i fi wfs rfs eff env es h ts. (Sel1 rfs (Field fi), Reader env :> es, IOE :> es, eff ~ Eff es, StdHandler h eff, HaveTraits '[PathVar "id" i] ts, Sets h '[RequiredResponseHeader "Content-Type" Text, Body JSON (Rep Text), Body JSON (Rep ())]) => (env -> Pool Connection) -> Table wfs rfs -> (i -> Field fi) -> (RequestHandler h ts, SysOper')
module Tedious