packages feed

polysemy-http-0.1.0.0: lib/Polysemy/Http/Json.hs

module Polysemy.Http.Json where

import Control.Lens ((%~))

import Polysemy.Http.Data.Header (HeaderName, HeaderValue)
import qualified Polysemy.Http.Data.Http as Http
import Polysemy.Http.Data.Http (Http)
import Polysemy.Http.Data.HttpError (HttpError)
import qualified Polysemy.Http.Data.Request as Request
import Polysemy.Http.Data.Request (Request)
import Polysemy.Http.Data.Response (Response)

jsonContentType :: (HeaderName, HeaderValue)
jsonContentType =
  ("content-type", "application/json")

jsonRequest ::
  Member (Http c) r =>
  Request ->
  Sem r (Either HttpError (Response LByteString))
jsonRequest =
  Http.request . (Request.headers %~ (jsonContentType :))