Resource.hs 873 B

1234567891011121314151617181920212223242526272829303132
  1. module Data.SMTP.Types.Resource where
  2. import Data.SMTP.Types.Seal
  3. --import Data.SMTP.Types.URI
  4. --import Data.SMTP.Account (Account)
  5. import qualified Data.SMTP.Types.Mime as Mime
  6. --import qualified System.IO.Uniform as UIO
  7. import qualified Data.ByteString.Lazy as LBS
  8. import Data.Char
  9. data Header = Header (String, String) deriving (Read, Show, Eq, Ord)
  10. data Resource = Resource {
  11. mimeType :: Mime.ContentType,
  12. publicHeaders :: [Header],
  13. seal :: Maybe Seal,
  14. bodyData :: ResourceData}
  15. type ResourceData = LBS.ByteString
  16. getHeader :: [Header] -> String -> Maybe Header
  17. getHeader [] _ = Nothing
  18. getHeader (h@(Header (hk, _)) : hh) k
  19. | map toLower hk == map toLower k = Just h
  20. | otherwise = getHeader hh k
  21. getHeaderValue :: [Header] -> String -> Maybe String
  22. getHeaderValue hh h = case getHeader hh h of
  23. Just (Header (_, v)) -> Just v
  24. Nothing -> Nothing