From ad88164c3572e961aaebb6f05b47518f0bd513d6 Mon Sep 17 00:00:00 2001 From: sabadev Date: Mon, 15 Mar 2021 20:54:31 -0400 Subject: [PATCH] Added some routes for the server. --- app/Main.hs | 12 ++++++++++-- package.yaml | 2 ++ src/Lib.hs | 6 ------ src/Server.hs | 26 ++++++++++++++++++++++++++ stack.yaml | 3 +++ 5 files changed, 41 insertions(+), 8 deletions(-) delete mode 100644 src/Lib.hs create mode 100644 src/Server.hs diff --git a/app/Main.hs b/app/Main.hs index de1c1ab..375caf9 100644 --- a/app/Main.hs +++ b/app/Main.hs @@ -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) diff --git a/package.yaml b/package.yaml index fb2140c..c32794f 100644 --- a/package.yaml +++ b/package.yaml @@ -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 index d36ff27..0000000 --- a/src/Lib.hs +++ /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 index 0000000..dff3769 --- /dev/null +++ b/src/Server.hs @@ -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 () diff --git a/stack.yaml b/stack.yaml index 7dc0133..f89ccf4 100644 --- a/stack.yaml +++ b/stack.yaml @@ -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: {} -- 2.20.1