blob: 0ccf5e26f9e7db7b159675feb90f71d96d2bc7e5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
import Network.Wai.Middleware.Gzip (GzipFiles (GzipCompress))
import qualified Network.Wai.Middleware.Gzip as W
import Network.Wai.Middleware.Static
import qualified Web.Scotty as S
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 Job.Daemon (runDaemons)
main :: IO ()
main = do
conf <- Conf.get "application.conf"
_ <- runDaemons conf
S.scotty (Conf.port conf) $ do
S.middleware $ W.gzip $ W.def { W.gzipFiles = GzipCompress }
S.middleware . staticPolicy $ noDots >-> addBase "public"
S.get "/" $ do
Index.get conf
S.post "/askSignIn" $ do
S.jsonData >>= Index.askSignIn conf
S.get "/signIn/:signInToken" $ do
signInToken <- S.param "signInToken"
Index.trySignIn conf signInToken
S.post "/signOut" $
Index.signOut conf
S.post "/payment" $
S.jsonData >>= Payment.create
S.put "/payment" $
S.jsonData >>= Payment.edit
S.delete "/payment/:id" $ do
paymentId <- S.param "id"
Payment.delete paymentId
S.post "/income" $
S.jsonData >>= Income.create
S.put "/income" $
S.jsonData >>= Income.edit
S.delete "/income/:id" $ do
incomeId <- S.param "id"
Income.delete incomeId
S.post "/category" $
S.jsonData >>= Category.create
S.put "/category" $
S.jsonData >>= Category.edit
S.delete "/category/:id" $ do
categoryId <- S.param "id"
Category.delete categoryId
|