aboutsummaryrefslogtreecommitdiff
path: root/src/server/Controller/Index.hs
diff options
context:
space:
mode:
authorJoris Guyonvarch2015-08-09 00:21:03 +0200
committerJoris Guyonvarch2015-08-09 00:21:03 +0200
commit169d52bfbe8b7f95dcece3cef245cdd62336e2f8 (patch)
tree491b5edb2646b41d36920f1c670cba26a674868c /src/server/Controller/Index.hs
parenta4f60df0f3b72553380bdd3ca960abf42048ed7e (diff)
downloadbudget-169d52bfbe8b7f95dcece3cef245cdd62336e2f8.tar.gz
budget-169d52bfbe8b7f95dcece3cef245cdd62336e2f8.tar.bz2
budget-169d52bfbe8b7f95dcece3cef245cdd62336e2f8.zip
Wording for sign in email
Diffstat (limited to 'src/server/Controller/Index.hs')
-rw-r--r--src/server/Controller/Index.hs58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/server/Controller/Index.hs b/src/server/Controller/Index.hs
new file mode 100644
index 0000000..610c57c
--- /dev/null
+++ b/src/server/Controller/Index.hs
@@ -0,0 +1,58 @@
+module Controller.Index
+ ( getIndexAction
+ , getUserName
+ , signOutAction
+ , getUsersAction
+ , addUserAction
+ , deleteUserAction
+ ) where
+
+import Web.Scotty
+
+import Network.HTTP.Types.Status (ok200)
+
+import Database.Persist
+
+import Control.Monad.IO.Class (liftIO)
+
+import Data.Text (Text)
+import Data.String (fromString)
+
+import qualified LoginSession
+
+import qualified Secure
+
+import Model.Database
+import Model.User
+import Model.Message
+
+import View.Page (page)
+
+getIndexAction :: ActionM ()
+getIndexAction = html page
+
+getUserName :: ActionM ()
+getUserName =
+ Secure.loggedAction (\user -> do
+ json . Message . userName . entityVal $ user
+ )
+
+signOutAction :: ActionM ()
+signOutAction = do
+ LoginSession.delete
+ status ok200
+
+getUsersAction :: ActionM ()
+getUsersAction = do
+ users <- liftIO $ runDb getUsers
+ html . fromString . show $ users
+
+addUserAction :: Text -> Text -> ActionM ()
+addUserAction email name = do
+ _ <- liftIO . runDb $ createUser email name
+ status ok200
+
+deleteUserAction :: Text -> ActionM ()
+deleteUserAction email = do
+ _ <- liftIO . runDb $ deleteUser email
+ status ok200