From 5375ad26dd78220185f1ffe05222250c06dc1a0c Mon Sep 17 00:00:00 2001 From: Joris Date: Sat, 21 Nov 2015 21:41:38 +0100 Subject: Get next week birthdays and send an empty mail for the moment --- src/Mail.hs | 75 ------------------------------------------------------------- 1 file changed, 75 deletions(-) delete mode 100644 src/Mail.hs (limited to 'src/Mail.hs') diff --git a/src/Mail.hs b/src/Mail.hs deleted file mode 100644 index dc533ef..0000000 --- a/src/Mail.hs +++ /dev/null @@ -1,75 +0,0 @@ -{-# LANGUAGE OverloadedStrings #-} - -module Mail - ( mailSubject - , mailBody - ) where - -import Data.Text (Text) -import qualified Data.Text as T - -import Date -import Birthdate - -mailSubject :: [Birthdate] -> Text -mailSubject birthdates = - let count = length birthdates - in T.concat - [ "Hey, " - , if count > 1 then "there are" else "there is" - , " " - , T.pack . show $ count - , " birthday" - , if count > 1 then "s" else "" - , " today!" - ] - -mailBody :: Date -> [Birthdate] -> Text -mailBody currentDate birthdates = - let count = length birthdates - birthdatesWithLines = map (mapFst lineKind) . zip [1..] $ birthdates - lineKind 1 = if count == 1 then SingleLine else FirstLine - lineKind line = if line == count then LastLine else MiddleLine - in T.concat $ map (mailLine currentDate) birthdatesWithLines - -mapFst :: (a -> c) -> (a, b) -> (c, b) -mapFst f (x, y) = (f x, y) - -data Line = - SingleLine - | FirstLine - | MiddleLine - | LastLine - deriving (Eq, Show) - -mailLine :: Date -> (Line, Birthdate) -> Text -mailLine currDate (SingleLine, birthdate) = - T.concat - [ fullname birthdate - , " is now " - , T.pack . show $ age currDate birthdate - , " years old." - ] -mailLine currDate (FirstLine, birthdate) = - T.concat - [ fullname birthdate - , " is now " - , T.pack . show $ age currDate birthdate - , " years old" - ] -mailLine currDate (MiddleLine, birthdate) = - T.concat - [ ", " - , fullname birthdate - , " is " - , T.pack . show $ age currDate birthdate - , " years old" - ] -mailLine currDate (LastLine, birthdate) = - T.concat - [ " and " - , fullname birthdate - , " is " - , T.pack . show $ age currDate birthdate - , " years old." - ] -- cgit v1.2.3