{-# LANGUAGE OverloadedStrings #-} import Web.Scotty import Network.Wai.Middleware.Static import Data.Text (Text) import Application import Model.Database (runMigrations) main :: IO () main = do runMigrations scotty 3000 $ do middleware $ staticPolicy (noDots >-> addBase "public") get "/" $ getIndexAction post "/signIn" $ do login <- param "login" :: ActionM Text signInAction login get "/validateSignIn" $ do token <- param "token" :: ActionM Text validateSignInAction token get "/userName" $ getUserName get "/payments" $ getPaymentsAction post "/payment/add" $ do name <- param "name" :: ActionM Text cost <- param "cost" :: ActionM Int createPaymentAction name cost post "/signOut" $ signOutAction get "/users" getUsersAction post "/user/add" $ do email <- param "email" :: ActionM Text name <- param "name" :: ActionM Text addUserAction email name post "/user/delete" $ do email <- param "email" :: ActionM Text deleteUserAction email