Browse Source

Update

master
Julian Ospald 2 years ago
parent
commit
3a7c74a67a
Signed by: hasufell <hasufell@hasufell.de> GPG Key ID: 511B62C09D50CD28
4 changed files with 80 additions and 3 deletions
  1. +22
    -0
      .gitignore
  2. +8
    -2
      scotty-example.cabal
  3. +8
    -0
      src/Helpers.hs
  4. +42
    -1
      src/Main.hs

+ 22
- 0
.gitignore View File

@@ -0,0 +1,22 @@
dist
dist-*
cabal-dev
*.o
*.hi
*.chi
*.chs.h
*.dyn_o
*.dyn_hi
.hpc
.hsenv
.cabal-sandbox/
cabal.sandbox.config
*.prof
*.aux
*.hp
*.eventlog
.stack-work/
cabal.project.local
cabal.project.local~
.HTF/
.ghc.environment.*

+ 8
- 2
scotty-example.cabal View File

@@ -17,9 +17,15 @@ cabal-version: >=1.10

executable scotty-example
main-is: Main.hs
-- other-modules:
other-modules: Helpers
-- other-extensions:
build-depends: base >=4.9 && <4.10,
scotty
bytestring,
scotty,
http-types,
text,
wai,
wai-extra,
utf8-string
hs-source-dirs: src
default-language: Haskell2010

+ 8
- 0
src/Helpers.hs View File

@@ -0,0 +1,8 @@
module Helpers where

import Data.String


fS :: IsString a => String -> a
fS = fromString


+ 42
- 1
src/Main.hs View File

@@ -1,4 +1,45 @@
module Main where

import Web.Scotty

import Data.Monoid (mconcat)
import Helpers
import Network.HTTP.Types.Status
import qualified Data.Text.Lazy as T
import Network.Wai
import Network.Wai.Middleware.RequestLogger
import Network.Wai.Middleware.HttpAuth
import qualified Data.ByteString as BS
import qualified Data.ByteString.UTF8 as U8


main :: IO ()
main = putStrLn "Hello, Haskell!"
main = scotty 3000 $ do
middleware auth
middleware logging
get (fS "/foo") foo
get (fS "/:word") word_pattern


word_pattern :: ActionM ()
word_pattern = do
beam <- param (fS "word")
html $ mconcat [fS "<h1>Scotty, ", beam, fS " me up!</h1>"]


foo :: ActionM ()
foo = do
status ok200
text $ T.pack "Blah"
return ()


logging :: Middleware
logging = logStdout


auth :: Middleware
auth = basicAuth (\u p -> return $
u == U8.fromString "michael" &&
p == U8.fromString "mypass")
(fS "My Realm")

Loading…
Cancel
Save