Fix compiler errors in servant-examples.

This commit is contained in:
Arian van Putten 2015-10-02 14:12:16 +02:00
parent e0fe0a1f39
commit cf59abd2b8
2 changed files with 38 additions and 4 deletions

View File

@ -0,0 +1,33 @@
{-#LANGUAGE DataKinds, TypeOperators, OverloadedStrings #-}
module Main where
import Data.Text
import Data.ByteString (ByteString)
import Data.Proxy
import Servant.API
import Servant.API.Authentication
import Servant.Server
import Servant.Server.Internal.Authentication
import Network.Wai.Handler.Warp
data User = User
{ username :: ByteString
, ha1 :: ByteString -- ^ MD5(username:realm:password)
}
-- | A table with just one user. namely "username:foo:password"
table = [("username", User "username" "22f93fe54b9edf660a2f85310adc8a56")]
type API = AuthProtect (DigestAuth "foo") User 'Strict :> "foo" :> Get '[JSON] Text
api :: Server API
api = digestAuthStrict ha1 lookupUser (const . return $ "hello")
lookupUser :: DigestAuth "foo" -> IO (Maybe User)
lookupUser authData = return . lookup (daUsername authData) $ table
main :: IO ()
main = run 8080 (serve (Proxy :: Proxy API) api)

View File

@ -16,6 +16,7 @@ import Servant.JS
import System.Random
import qualified Data.Text as T
import qualified Data.Text.IO as TIO
import qualified Language.Javascript.JQuery as JQ
data Point = Point
@ -91,14 +92,14 @@ server' :: Server API'
server' = server
:<|> serveDirectory "tutorial/t9"
apiJS :: String
apiJS :: Text
apiJS = jsForAPI api jquery
writeJSFiles :: IO ()
writeJSFiles = do
writeFile "tutorial/t9/api.js" apiJS
jq <- readFile =<< JQ.file
writeFile "tutorial/t9/jq.js" jq
TIO.writeFile "tutorial/t9/api.js" apiJS
jq <- TIO.readFile =<< JQ.file
TIO.writeFile "tutorial/t9/jq.js" jq
app :: Application
app = serve api' server'