{-# LANGUAGE OverloadedStrings #-} module Network.Api.Postmark.Settings ( -- * Settings types PostmarkSettings (..), PostmarkApiToken, -- * Settings construction postmarkHttp, postmarkHttps, -- * Using the test token postmarkTestToken, postmarkHttpTest, postmarkHttpsTest ) where import Data.Text -- | The Postmark “server token” which is sent via the -- @X-Postmark-Server-Token@ HTTP header. You can find your server -- token under the “Credentials” tab on the Postmark website. -- -- If you do not yet have a Postmark account, or if you want to send -- test emails that don't actually get delivered, you may use -- 'postmarkTestToken'. -- -- https://postmarkapp.com/developer/api/overview#authentication type PostmarkApiToken = Text -- | To construct 'PostmarkSettings', use 'postmarkHttps' or -- 'postmarkHttp'. -- -- Or to use the test API instead, use 'postmarkHttpsTest' or -- 'postmarkHttpTest'. data PostmarkSettings = PostmarkSettings { apiUrl :: Text , apiToken :: PostmarkApiToken } deriving (Eq, Show) -- | An API token that you can use when you want to send test emails that -- don't actually get delivered to the recipient. -- -- https://postmarkapp.com/developer/api/overview#authentication postmarkTestToken :: PostmarkApiToken postmarkTestToken = "POSTMARK_API_TEST" -- | Postmark settings using the HTTP protocol and the test API token -- ('postmarkTestToken'). -- -- HTTPS is recommended instead ('postmarkHttpsTest'). postmarkHttpTest :: PostmarkSettings postmarkHttpTest = postmarkHttp postmarkTestToken -- | Postmark settings using the HTTPS protocol and the test API token -- ('postmarkTestToken'). postmarkHttpsTest :: PostmarkSettings postmarkHttpsTest = postmarkHttps postmarkTestToken -- | Constructs Postmark settings using the HTTP protocol and your API token. -- -- HTTPS is recommended instead ('postmarkHttps'). postmarkHttp :: PostmarkApiToken -> PostmarkSettings postmarkHttp = PostmarkSettings "http://api.postmarkapp.com" -- | Constructs Postmark settings using the HTTPS protocol and your API token. postmarkHttps :: PostmarkApiToken -> PostmarkSettings postmarkHttps = PostmarkSettings "https://api.postmarkapp.com"