diff options
author | tv <tv@krebsco.de> | 2025-07-21 21:59:52 +0200 |
---|---|---|
committer | tv <tv@krebsco.de> | 2025-07-21 21:59:52 +0200 |
commit | 02d8996bb6aaeb2881e2df33da5167b649edb822 (patch) | |
tree | a371daf482b5dcab978faaa8fd564a013618956e | |
parent | 1a48de5dee7682d2384d9695f76da6ea0f9d10fa (diff) |
require purebred-email >= 0.6feature/parts
-rw-r--r-- | src/Data/MIME/Extended.hs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/Data/MIME/Extended.hs b/src/Data/MIME/Extended.hs index 74ceaf5..a58b9f5 100644 --- a/src/Data/MIME/Extended.hs +++ b/src/Data/MIME/Extended.hs @@ -7,6 +7,7 @@ module Data.MIME.Extended ( module Data.MIME ) where +import Control.Arrow (left) import Control.Lens hiding ((.=)) import Data.Aeson import Data.ByteString (ByteString) @@ -121,8 +122,15 @@ makeMultipart h = maybeToRight (InvalidParameterValue "type" s) (preview (parsed parseContentType) s) + >>= return . Just . setContentTypeParameters () + ) + <*> ( getOptionalParam "start" ct + >>= traverse + (\s -> + left + (InvalidParameterValue "start" . ((s <> ": ") <>)) + (makeContentID s)) ) - <*> getOptionalParam "start" ct <*> getOptionalParam "start-info" ct unrecognised -> pure $ Unrecognised unrecognised @@ -141,6 +149,10 @@ makeMultipart h = getOptionalParam k = Right . preview (rawParameter k) + setContentTypeParameters :: b -> ContentTypeWith a -> ContentTypeWith b + setContentTypeParameters p (ContentType t st _) = + ContentType t st p + data MIMEParseError = RequiredParameterMissing (CI ByteString) | InvalidParameterValue (CI ByteString) ByteString |