aboutsummaryrefslogtreecommitdiff
path: root/src/server/Main.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/Main.hs')
-rw-r--r--src/server/Main.hs21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/server/Main.hs b/src/server/Main.hs
index 17c2594..db73474 100644
--- a/src/server/Main.hs
+++ b/src/server/Main.hs
@@ -1,16 +1,25 @@
{-# LANGUAGE OverloadedStrings #-}
+import Control.Applicative (liftA3)
+import Control.Monad.IO.Class (liftIO)
+
import Network.Wai.Middleware.Static
import qualified Data.Text.Lazy as LT
import Web.Scotty
-import Job.Daemon (runDaemons)
import qualified Conf
import qualified Controller.Category as Category
import qualified Controller.Income as Income
import qualified Controller.Index as Index
import qualified Controller.Payment as Payment
import qualified Controller.SignIn as SignIn
+import Job.Daemon (runDaemons)
+import Model.Payer (getOrderedExceedingPayers)
+import qualified Data.Time as Time
+import qualified Model.User as UserM
+import qualified Model.Income as IncomeM
+import qualified Model.Payment as PaymentM
+import qualified Model.Query as Query
main :: IO ()
main = do
@@ -19,13 +28,19 @@ main = do
scotty (Conf.port conf) $ do
middleware . staticPolicy $ noDots >-> addBase "public"
+ get "/exceedingPayer" $ do
+ time <- liftIO Time.getCurrentTime
+ (users, incomes, payments) <- liftIO . Query.run $
+ liftA3 (,,) UserM.list IncomeM.list PaymentM.list
+ let exceedingPayers = getOrderedExceedingPayers time users incomes payments
+ text . LT.pack . show $ exceedingPayers
+
get "/" $ do
signInToken <- mbParam "signInToken"
Index.get conf signInToken
post "/signIn" $ do
- email <- param "email"
- SignIn.signIn conf email
+ jsonData >>= SignIn.signIn conf
post "/signOut" $
Index.signOut conf