{-# OPTIONS_GHC -fno-warn-orphans #-}
{-# LANGUAGE Trustworthy, FlexibleInstances, UnicodeSyntax #-}
module Network.HTTP.Link (
module Network.HTTP.Link.Types
, module Network.HTTP.Link.Writer
, module Network.HTTP.Link.Parser
, lnk
) where
import Control.Error.Util (hush)
import Data.Text (Text, pack)
import Data.Text.Encoding
import safe Network.HTTP.Link.Parser
import safe Network.HTTP.Link.Types
import safe Network.HTTP.Link.Writer
import Web.HttpApiData
instance (IsURI uri) ⇒ ToHttpApiData [Link uri] where
toUrlPiece = toUrlPiece . writeLinkHeader
toHeader = encodeUtf8 . writeLinkHeader
instance (IsURI uri) ⇒ ToHttpApiData (Link uri) where
toUrlPiece = toUrlPiece . writeLink
toHeader = encodeUtf8 . writeLink
lnk ∷ (IsURI uri) ⇒ String → [(LinkParam, Text)] → Maybe (Link uri)
lnk u r = fmap (\x → Link x r) $ hush $ uriFromText $ pack u