Skip to content

Commit

Permalink
Merge pull request #135 from slamdata/dequalify-header-fns
Browse files Browse the repository at this point in the history
Remove name prefixes for Header module functions
  • Loading branch information
garyb committed Feb 23, 2019
2 parents 436b547 + 1c6ce88 commit 7f92b5c
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 36 deletions.
11 changes: 6 additions & 5 deletions src/Affjax.purs
Expand Up @@ -18,10 +18,11 @@ module Affjax
import Prelude

import Affjax.RequestBody as RequestBody
import Affjax.RequestHeader (RequestHeader(..), requestHeaderName, requestHeaderValue)
import Affjax.RequestHeader (RequestHeader(..))
import Affjax.RequestHeader as RequestHeader
import Affjax.ResponseFormat (ResponseFormatError(..), printResponseFormatError)
import Affjax.ResponseFormat as ResponseFormat
import Affjax.ResponseHeader (ResponseHeader, responseHeader)
import Affjax.ResponseHeader (ResponseHeader(..))
import Affjax.StatusCode (StatusCode(..))
import Control.Monad.Except (runExcept, throwError)
import Control.Parallel (parOneOf)
Expand Down Expand Up @@ -243,7 +244,7 @@ retry policy run req = do
-- | ```
request :: forall a. Request a -> Aff (Response (Either ResponseFormatError a))
request req = do
res <- AC.fromEffectFnAff $ runFn2 _ajax responseHeader req'
res <- AC.fromEffectFnAff $ runFn2 _ajax ResponseHeader req'
case runExcept (fromResponse' res.body) of
Left err -> do
pure (res { body = Left (ResponseFormatError (NEL.head err) res.body) })
Expand All @@ -255,7 +256,7 @@ request req = do
req' =
{ method: Method.print req.method
, url: req.url
, headers: (\h -> { field: requestHeaderName h, value: requestHeaderValue h }) <$> headers req.content
, headers: (\h -> { field: RequestHeader.name h, value: RequestHeader.value h }) <$> headers req.content
, content: toNullable (extractContent <$> req.content)
, responseType: ResponseFormat.toResponseType req.responseFormat
, username: toNullable req.username
Expand All @@ -281,7 +282,7 @@ request req = do

addHeader :: Maybe RequestHeader -> Array RequestHeader -> Array RequestHeader
addHeader mh hs = case mh of
Just h | not $ any (on eq requestHeaderName h) hs -> hs `Arr.snoc` h
Just h | not $ any (on eq RequestHeader.name h) hs -> hs `Arr.snoc` h
_ -> hs

parseJSON :: String -> F Json
Expand Down
25 changes: 11 additions & 14 deletions src/Affjax/RequestHeader.purs
Expand Up @@ -2,31 +2,28 @@ module Affjax.RequestHeader where

import Prelude

import Data.MediaType (MediaType())
import Data.MediaType (MediaType)
import Data.Newtype (unwrap)

data RequestHeader
= Accept MediaType
| ContentType MediaType
| RequestHeader String String

instance eqRequestHeader :: Eq RequestHeader where
eq (Accept m1) (Accept m2) = m1 == m2
eq (ContentType m1) (ContentType m2) = m1 == m2
eq (RequestHeader h1 v1) (RequestHeader h2 v2) = h1 == h2 && v1 == v2
eq _ _ = false
derive instance eqRequestHeader :: Eq RequestHeader
derive instance ordRequestHeader :: Ord RequestHeader

instance showRequestHeader :: Show RequestHeader where
show (Accept m) = "(Accept " <> show m <> ")"
show (ContentType m) = "(ContentType " <> show m <> ")"
show (RequestHeader h v) = "(RequestHeader " <> show h <> " " <> show v <> ")"

requestHeaderName :: RequestHeader -> String
requestHeaderName (Accept _) = "Accept"
requestHeaderName (ContentType _) = "Content-Type"
requestHeaderName (RequestHeader h _) = h
name :: RequestHeader -> String
name (Accept _) = "Accept"
name (ContentType _) = "Content-Type"
name (RequestHeader h _) = h

requestHeaderValue :: RequestHeader -> String
requestHeaderValue (Accept m) = unwrap m
requestHeaderValue (ContentType m) = unwrap m
requestHeaderValue (RequestHeader _ v) = v
value :: RequestHeader -> String
value (Accept m) = unwrap m
value (ContentType m) = unwrap m
value (RequestHeader _ v) = v
22 changes: 7 additions & 15 deletions src/Affjax/ResponseHeader.purs
@@ -1,25 +1,17 @@
module Affjax.ResponseHeader
( ResponseHeader()
, responseHeader
, responseHeaderName
, responseHeaderValue
) where
module Affjax.ResponseHeader where

import Prelude

data ResponseHeader = ResponseHeader String String

responseHeader :: String -> String -> ResponseHeader
responseHeader field value = ResponseHeader field value

instance eqResponseHeader :: Eq ResponseHeader where
eq (ResponseHeader h1 v1) (ResponseHeader h2 v2) = h1 == h2 && v1 == v2
derive instance eqResponseHeader :: Eq ResponseHeader
derive instance ordResponseHeader :: Ord ResponseHeader

instance showResponseHeader :: Show ResponseHeader where
show (ResponseHeader h v) = "(ResponseHeader " <> show h <> " " <> show v <> ")"

responseHeaderName :: ResponseHeader -> String
responseHeaderName (ResponseHeader h _) = h
name :: ResponseHeader -> String
name (ResponseHeader h _) = h

responseHeaderValue :: ResponseHeader -> String
responseHeaderValue (ResponseHeader _ v) = v
value :: ResponseHeader -> String
value (ResponseHeader _ v) = v
4 changes: 2 additions & 2 deletions src/Affjax/StatusCode.purs
Expand Up @@ -4,8 +4,8 @@ import Prelude

newtype StatusCode = StatusCode Int

instance eqStatusCode :: Eq StatusCode where
eq (StatusCode x) (StatusCode y) = x == y
derive instance eqStatusCode :: Eq StatusCode
derive instance ordStatusCode :: Ord StatusCode

instance showStatusCode :: Show StatusCode where
show (StatusCode code) = "(StatusCode " <> show code <> ")"

0 comments on commit 7f92b5c

Please sign in to comment.