-- | Builder

{-# LANGUAGE OverloadedStrings #-}

module Network.HTTP.Pony.Transformer.HTTP.Builder where

import Data.ByteString (ByteString)
import Pipes (yield, (~>), each, Producer)

import Network.HTTP.Pony.Transformer.HTTP.Type (Header, HttpRequest)

header :: Monad m => Header -> Producer ByteString m ()
header (key, value) = do
  yield key
  yield ": "
  yield value
  yield "\r\n"


message :: Monad m => HttpRequest ByteString m r -> Producer ByteString m r
message ((startLine, headers), body) = do
  yield startLine
  yield "\n"

  (each ~> header) headers

  yield "\r\n"
  body