module Main where
-import Lib
+import Control.Monad ((<=<))
+import Data.Maybe (fromMaybe, listToMaybe)
+import Network.Wai.Handler.Warp (Port(..), run)
+import Server
+import System.Environment (getArgs)
+import Text.Read (readMaybe)
main :: IO ()
-main = someFunc
+main = getPort >>= flip run app
+
+getPort :: IO Port
+getPort = getArgs >>= pure . fromMaybe 5000 . (readMaybe <=< listToMaybe)
- bytestring == 0.10.12.0
- cmark == 0.6
- containers == 0.6.2.1
+- lucid == 2.9.12.1
- mtl == 2.2.2
- servant == 0.18.2
+- servant-lucid == 0.9.0.2
- servant-server == 0.18.2
- text == 1.2.4.1
- warp == 3.3.14
+++ /dev/null
-module Lib
- ( someFunc
- ) where
-
-someFunc :: IO ()
-someFunc = putStrLn "someFunc"
--- /dev/null
+module Server where
+
+import Servant
+import Lucid
+import Servant.HTML.Lucid (HTML(..))
+
+app :: Application
+app = serve apiProxy api
+
+apiProxy :: Proxy Api
+apiProxy = Proxy
+
+type Api = MainPage :<|> BlogPost
+type MainPage = Get '[HTML] (Html ())
+type BlogPost = "blog" :> QueryParam "id" BlogId :> Get '[HTML] (Html ())
+
+type BlogId = Integer
+
+api :: Server Api
+api = mainPage :<|> blogPost
+
+mainPage :: Handler (Html ())
+mainPage = pure ()
+
+blogPost :: BlogId -> Handler (Html ())
+blogPost blogId = pure ()
#
# extra-deps: []
+extra-deps:
+- servant-lucid-0.9.0.2@sha256:693278d574dba7313e931200118424762c02682bbc654e8866be4e6d1c73d816,1803
+
# Override default flag values for local packages and extra-deps
# flags: {}