diff --git a/package.dhall b/package.dhall index 7868e83..847c418 100644 --- a/package.dhall +++ b/package.dhall @@ -1,10 +1,10 @@ { Schema = ./schema.dhall - sha256:99dc461563042c4c4df92a8ce5a66842496be9fb2303bd0d7bf344417888cf61 + sha256:1aa8c2f42fc6fc3055a35c1285314340f934aa50226c6cdc96f8d19471a84835 ? ./schema.dhall , Schema/validate = ./validate.dhall - sha256:03d846ce0f42478c630708dd45cb9883f74f6ad97d4c0325bd6f6879368c7bd1 + sha256:78f05c1c7d49d3d8854b8a000600a30e55c7c2771bf9f91dc4717ef30a191a91 ? ./validate.dhall , Schema/version = ./version.dhall diff --git a/schema.dhall b/schema.dhall index 78fceb7..4115206 100644 --- a/schema.dhall +++ b/schema.dhall @@ -15,6 +15,21 @@ let Schema = , Gzip : Natural , Timeout : Natural } + , Mailer : + { Enabled : Bool + , Protocol : Text + , SMTPAddr : Text + , SMTPPort : Natural + , ForceTrustServerCert : Bool + , EnableHELO : Bool + , HELOHostname : Text + , Auth : Text + , From : Text + , User : Text + , Password : Text + , SubjectPrefix : Text + , SendPlainText : Bool + } , AppName : Text , LiveMode : Bool , DevelMode : Bool @@ -44,6 +59,15 @@ let Schema = , Gzip = 0 , Timeout = 0 } + , Mailer = + { Enabled = False + , Protocol = "smtps" + , SMTPPort = 465 + , ForceTrustServerCert = False + , EnableHELO = False + , SubjectPrefix = "pcmt - " + , SendPlainText = True + } , AppName = "pcmt" , LiveMode = False , DevelMode = False diff --git a/validate.dhall b/validate.dhall index 192f198..018c039 100644 --- a/validate.dhall +++ b/validate.dhall @@ -5,7 +5,7 @@ let Prelude = let Schema = ./schema.dhall - sha256:99dc461563042c4c4df92a8ce5a66842496be9fb2303bd0d7bf344417888cf61 + sha256:1aa8c2f42fc6fc3055a35c1285314340f934aa50226c6cdc96f8d19471a84835 ? ./schema.dhall let Schema/validate @@ -13,13 +13,20 @@ let Schema/validate = -- | define validation. \(c : Schema.Type) -> - let expected = { validPort = True } + let expected = { validPort = True, validSMTPPort = True } let actual = { validPort = -- | make sure port number belongs to the <1;65535> range. Prelude.Natural.lessThanEqual 1 c.Port && Prelude.Natural.lessThanEqual c.Port 65535 + , validSMTPPort = + if c.Mailer.Enabled == False + then True + else Prelude.Natural.lessThanEqual 1 c.Mailer.SMTPPort + && Prelude.Natural.lessThanEqual + c.Mailer.SMTPPort + 65535 } in expected === actual