blob: 7d3b5dcbd64073a190c66df635017a22d6092c2f (
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
|
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE StandaloneKindSignatures #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
-- |
module Main where
import qualified Data.Aeson as A
import qualified Data.ByteString.Lazy as LB
import Data.Default.Class (def)
import Data.Maybe (fromJust, fromMaybe)
import Data.Time.Calendar.MonthDay (monthAndDayToDayOfYearValid)
import qualified Data.Time.Calendar.OrdinalDate as Day
import Network.Wai.Handler.Warp (run)
import Network.Wai.Middleware.RequestLogger (OutputFormat (..),
RequestLoggerSettings (..),
mkRequestLogger)
import Database.Persist.Postgresql
import Control.Monad.Logger (runStderrLoggingT)
import Control.Monad.IO.Class (MonadIO (liftIO))
import GTFS
import Server
connStr = "user=travelynx"
main :: IO ()
main = do
gtfs <- loadGtfs "./gtfs.zip"
loggerMiddleware <- mkRequestLogger
$ def { outputFormat = Detailed True }
runStderrLoggingT $ withPostgresqlPool connStr 10 $ \pool -> liftIO $ do
app <- application gtfs pool
putStrLn "starting server …"
run 4000 (loggerMiddleware app)
|