module Mail.Hailgun.PartUtil ( paramsToPart , attachmentToPart ) where import qualified Data.ByteString.Char8 as BC import qualified Data.Text as T import Data.Text.Encoding (decodeUtf8) import Mail.Hailgun.Internal.Data import qualified Network.HTTP.Client as NC import qualified Network.HTTP.Client.MultipartFormData as NCM paramsToPart :: (BC.ByteString, BC.ByteString) -> NCM.Part paramsToPart (name, content) = NCM.partBS (decodeUtf8 name) content attachmentToPart :: SpecificAttachment -> NCM.Part attachmentToPart (SpecificAttachment attachmentType filename body) = NCM.partFileRequestBody partName filename requestBody where partName = attachmentTypeToName attachmentType requestBody = attachmentBodyToRequestBody body attachmentBodyToRequestBody :: AttachmentBody -> NC.RequestBody attachmentBodyToRequestBody (AttachmentBS body) = NC.RequestBodyBS body attachmentBodyToRequestBody (AttachmentLBS body) = NC.RequestBodyLBS body attachmentTypeToName :: AttachmentType -> T.Text attachmentTypeToName Attached = T.pack "attachment" attachmentTypeToName Inline = T.pack "inline"