packages feed

yam-web 0.3.2 → 0.3.3

raw patch · 4 files changed

+48/−3 lines, 4 filesdep +persistentdep +persistent-templatedep +time

Dependencies added: persistent, persistent-template, time

Files

demo/Main.hs view
@@ -1,5 +1,7 @@ module Main where +import           Model+ import           Yam.Logger import           Yam.Transaction import           Yam.Web@@ -40,4 +42,5 @@ main = do   ys <- defaultYamSettings   logger (loggers ys) INFO (toLogStr (show ys) <> "\n")+  runDbIO ys migrateSql   runServer ys (Proxy :: Proxy UserApi) (userService :<|> errorService :<|> servantService :<|> dbService)
+ demo/Model.hs view
@@ -0,0 +1,32 @@+{-# LANGUAGE QuasiQuotes     #-}+{-# LANGUAGE TemplateHaskell #-}++module Model where++import           Yam.Transaction++import           Control.Monad.IO.Class (MonadIO)+import           Data.Text              (Text)+import           Data.Time.Clock        (UTCTime)+import           Database.Persist.Sql+import           Database.Persist.TH++share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|+EntityAlert json sql=t_alert+  key        Text+  result     Text+  notifyKey  Text Maybe+  alert      Bool+  createTime UTCTime+  deriving Show++EntityAlertNotification json sql=t_alert_notification+  notifyKey  Text+  key        Text+  alertId    EntityAlertId+  createTime UTCTime+  EntityAlertNotificationUniqueKey notifyKey key+|]++migrateSql :: MonadIO m => Transaction m ()+migrateSql = runMigration migrateAll
src/Yam/Web.hs view
@@ -8,6 +8,7 @@   , Yam   , defaultYamSettings   , runDb+  , runDbIO   , runServer   ) where @@ -24,6 +25,7 @@ import           Control.Exception          (finally, throw) import           Control.Monad.IO.Unlift import           Control.Monad.Trans.Except (runExceptT)+import           Control.Monad.Trans.Reader (ReaderT, runReaderT) import           Data.Aeson import           Data.Default import           Data.Monoid                ((<>))@@ -90,6 +92,11 @@   case dataSources of     Nothing -> error $ "Datasource disabled"     Just ds -> runTrans ds r++runDbIO :: YamSettings -> Transaction (ReaderT LoggerConfig IO) () -> IO ()+runDbIO YamSettings{..} r = case dataSources of+  Nothing -> return ()+  Just v  -> runReaderT (runTrans v r) loggers  runServer :: (HasSwagger api, HasServer api '[YamSettings]) => YamSettings -> Proxy api -> ServerT api Yam -> IO () runServer ys@YamSettings{..} p a = run port (mkServeWithSwagger p Proxy (ys :. EmptyContext) Proxy ys middlewares swaggers a) `finally` go loggers dataSources
yam-web.cabal view
@@ -2,10 +2,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 0b72633679c8414dad55b9d67c58c29ccc14a7bcda4fb05be0e849f4163e17a0+-- hash: 90996c2a545d34b4c05940d0cfe69fec3a74b8b3a610f6fad37ef445c7f03da8  name:           yam-web-version:        0.3.2+version:        0.3.3 synopsis:       Yam Web description:    base web module for yam category:       Project@@ -59,7 +59,7 @@ executable yam-web   main-is: Main.hs   other-modules:-      Paths_yam_web+      Model   hs-source-dirs:       demo   default-extensions: AutoDeriveTypeable BangPatterns BinaryLiterals ConstraintKinds DataKinds DefaultSignatures DeriveDataTypeable DeriveFoldable DeriveFunctor DeriveGeneric DeriveTraversable DuplicateRecordFields DoAndIfThenElse EmptyDataDecls ExistentialQuantification FlexibleContexts FlexibleInstances FunctionalDependencies GADTs GeneralizedNewtypeDeriving InstanceSigs KindSignatures LambdaCase MonadFailDesugaring MultiParamTypeClasses MultiWayIf NamedFieldPuns OverloadedStrings PartialTypeSignatures PatternGuards PolyKinds RankNTypes RecordWildCards ScopedTypeVariables StandaloneDeriving TupleSections TypeApplications TypeFamilies TypeOperators TypeSynonymInstances ViewPatterns@@ -69,6 +69,8 @@     , base >=4.7 && <5     , data-default     , lens+    , persistent+    , persistent-template     , reflection     , servant-server     , servant-swagger@@ -76,6 +78,7 @@     , string-conversions     , swagger2     , text+    , time     , transformers     , unliftio-core     , vault