Added some routes for the server.
authorsabadev <saba@sabadev.xyz>
Tue, 16 Mar 2021 00:54:31 +0000 (20:54 -0400)
committersabadev <dev@sabadev.xyz>
Tue, 13 Apr 2021 01:16:03 +0000 (21:16 -0400)
app/Main.hs
package.yaml
src/Lib.hs [deleted file]
src/Server.hs [new file with mode: 0644]
stack.yaml

index de1c1ab..375caf9 100644 (file)
@@ -1,6 +1,14 @@
 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)
index fb2140c..c32794f 100644 (file)
@@ -25,8 +25,10 @@ dependencies:
 - 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
diff --git a/src/Lib.hs b/src/Lib.hs
deleted file mode 100644 (file)
index d36ff27..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-module Lib
-    ( someFunc
-    ) where
-
-someFunc :: IO ()
-someFunc = putStrLn "someFunc"
diff --git a/src/Server.hs b/src/Server.hs
new file mode 100644 (file)
index 0000000..dff3769
--- /dev/null
@@ -0,0 +1,26 @@
+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 ()
index 7dc0133..f89ccf4 100644 (file)
@@ -42,6 +42,9 @@ packages:
 #
 # extra-deps: []
 
+extra-deps:
+- servant-lucid-0.9.0.2@sha256:693278d574dba7313e931200118424762c02682bbc654e8866be4e6d1c73d816,1803
+
 # Override default flag values for local packages and extra-deps
 # flags: {}