diff options
-rw-r--r-- | mailaids.cabal | 1 | ||||
-rw-r--r-- | src/Data/MIME/Extended.hs | 8 |
2 files changed, 5 insertions, 4 deletions
diff --git a/mailaids.cabal b/mailaids.cabal index 9c501d5..46f2c51 100644 --- a/mailaids.cabal +++ b/mailaids.cabal @@ -17,6 +17,7 @@ executable mailaid base, bytestring, case-insensitive, + either, lens, optparse-applicative, purebred-email >= 0.5, diff --git a/src/Data/MIME/Extended.hs b/src/Data/MIME/Extended.hs index 773d0b7..74ceaf5 100644 --- a/src/Data/MIME/Extended.hs +++ b/src/Data/MIME/Extended.hs @@ -13,6 +13,7 @@ import Data.ByteString (ByteString) import Data.ByteString.Extended () import Data.CaseInsensitive (CI) import Data.Either (fromRight) +import Data.Either.Combinators (maybeToRight) import Data.List.NonEmpty (NonEmpty) import Data.MIME import Data.MIME.EncodedWord @@ -117,9 +118,8 @@ makeMultipart h = "related" -> Related <$> ( getRequiredParam "type" ct >>= \s -> - maybe - (Left $ InvalidParameterValue "type" s) - Right + maybeToRight + (InvalidParameterValue "type" s) (preview (parsed parseContentType) s) ) <*> getOptionalParam "start" ct @@ -134,7 +134,7 @@ makeMultipart h = getRequiredParam :: HasParameters s => CI ByteString -> s -> Either MIMEParseError ByteString getRequiredParam k = - maybe (Left $ RequiredParameterMissing k) Right . preview (rawParameter k) + maybeToRight (RequiredParameterMissing k) . preview (rawParameter k) getOptionalParam :: HasParameters s => CI ByteString -> s -> Either a (Maybe ByteString) |