packages feed

hsoz-0.0.0.4: example/BewitClient.hs

module BewitClient where

import           Control.Exception          as E
import           Control.Lens
import           Data.ByteString            (ByteString)
import qualified Data.ByteString            as BS
import qualified Data.ByteString.Char8      as S8
import qualified Data.ByteString.Lazy.Char8 as L8
import           Network.HTTP.Client        (HttpException (..))
import           Network.HTTP.Simple
import           Data.Monoid

import           Common
import           Network.Hawk
import qualified Network.Hawk.Client        as Hawk

clientMain :: IO ()
clientMain = do
  let uri = "http://localhost:8000/resource/1?b=1&a=2"
      creds = Hawk.Credentials "dh37fgj492je" sharedKey (HawkAlgo SHA256)

  res <- Hawk.getBewit creds 60 Nothing 0 uri
  case res of
    Just bewit -> do
      let uri' = S8.unpack $ uri <> "&bewit=" <> bewit
      r <- httpLBS (parseRequest_ uri')
      print $ getResponseStatusCode r
      L8.putStrLn $ ": " <> getResponseBody r
    Nothing -> putStrLn "Couldn't generate bewit"