aboutsummaryrefslogtreecommitdiff
path: root/src/executable/haskell/Service/MailService.hs
diff options
context:
space:
mode:
authorJoris2019-09-03 21:01:53 +0200
committerJoris2019-09-03 21:04:40 +0200
commit5cedcecd6ae31e2485dcab2ddd74c74a4779545d (patch)
treebb54b8f1bbf1f5baaf94c28e4443fb17321d5fc7 /src/executable/haskell/Service/MailService.hs
parent8d14cb80170a8a15a0ced13bc7fe5cd16b908974 (diff)
downloadad-listener-5cedcecd6ae31e2485dcab2ddd74c74a4779545d.tar.gz
ad-listener-5cedcecd6ae31e2485dcab2ddd74c74a4779545d.tar.bz2
ad-listener-5cedcecd6ae31e2485dcab2ddd74c74a4779545d.zip
Make LBC to work
Use request headers to simulate a normal browser
Diffstat (limited to 'src/executable/haskell/Service/MailService.hs')
-rw-r--r--src/executable/haskell/Service/MailService.hs29
1 files changed, 21 insertions, 8 deletions
diff --git a/src/executable/haskell/Service/MailService.hs b/src/executable/haskell/Service/MailService.hs
index 955dea1..cb61c47 100644
--- a/src/executable/haskell/Service/MailService.hs
+++ b/src/executable/haskell/Service/MailService.hs
@@ -4,9 +4,9 @@ module Service.MailService
import Control.Arrow (left)
import Control.Exception (SomeException, try)
-import Data.Either (isLeft)
import Data.Text (Text)
import qualified Data.Text as T
+import qualified Data.Text.IO as T
import qualified Data.Text.Lazy as LT
import Data.Text.Lazy.Builder (fromText, toLazyText)
import qualified Network.Mail.Mime as Mime
@@ -14,13 +14,26 @@ import qualified Network.Mail.Mime as Mime
import Model.Mail (Mail)
import qualified Model.Mail as Mail
-send :: Mail -> IO (Either Text ())
-send mail = do
- result <- left (T.pack . show) <$> (try (Mime.renderSendMail . getMimeMail $ mail) :: IO (Either SomeException ()))
- if isLeft result
- then putStrLn ("Error sending the following email:" ++ (show mail))
- else return ()
- return result
+send :: Bool -> Mail -> IO (Either Text ())
+send isMock mail =
+ if isMock then do
+ putStrLn $ "MOCK sending mail " ++ (show mail)
+ return . Right $ ()
+ else do
+ result <-
+ left (T.pack . show) <$>
+ (try (Mime.renderSendMail . getMimeMail $ mail) :: IO (Either SomeException ()))
+ case result of
+ Left err ->
+ T.putStrLn . T.concat $
+ [ "Error sending the following email ("
+ , T.pack . show $ mail
+ , ":\n"
+ , err
+ ]
+ Right _ ->
+ return ()
+ return result
getMimeMail :: Mail -> Mime.Mail
getMimeMail mail =