-- 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