summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2025-07-21 21:59:52 +0200
committertv <tv@krebsco.de>2025-07-21 21:59:52 +0200
commit02d8996bb6aaeb2881e2df33da5167b649edb822 (patch)
treea371daf482b5dcab978faaa8fd564a013618956e
parent1a48de5dee7682d2384d9695f76da6ea0f9d10fa (diff)
require purebred-email >= 0.6feature/parts
-rw-r--r--src/Data/MIME/Extended.hs14
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