From 4c3684a2bd1e2d50f125abd601c386d09ea7bd8b Mon Sep 17 00:00:00 2001 From: Gunnar Johildarson Date: Fri, 19 Oct 2018 11:51:36 +0200 Subject: [PATCH] Add region to mailgun client to support EU region --- src/Typesafe.Mailgun/MailgunClient.cs | 104 +++++++++++++------------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/src/Typesafe.Mailgun/MailgunClient.cs b/src/Typesafe.Mailgun/MailgunClient.cs index 6a25fb9..55fe88a 100644 --- a/src/Typesafe.Mailgun/MailgunClient.cs +++ b/src/Typesafe.Mailgun/MailgunClient.cs @@ -1,32 +1,32 @@ -using System; -using System.Collections.Generic; -using System.Net.Mail; -using Typesafe.Mailgun.Routing; -using Typesafe.Mailgun.Statistics; - -namespace Typesafe.Mailgun -{ - /// - /// Provides access to the Mailgun REST API. - /// - public class MailgunClient : IMailgunAccountInfo, IMailgunClient - { - /// - /// Initializes a new client for the specified domain and api key. - /// - public MailgunClient(string domain, string apiKey, int version) - { - DomainBaseUrl = new Uri(string.Format("https://api.mailgun.net/v{0}/", version) + domain + "/"); - ApiKey = apiKey; - } - - public Uri DomainBaseUrl { get; private set; } - - public string ApiKey { get; private set; } - - public SendMailCommandResult SendMail(MailMessage mailMessage) - { - return new SendMailCommand(this, mailMessage).Invoke(); +using System; +using System.Collections.Generic; +using System.Net.Mail; +using Typesafe.Mailgun.Routing; +using Typesafe.Mailgun.Statistics; + +namespace Typesafe.Mailgun +{ + /// + /// Provides access to the Mailgun REST API. + /// + public class MailgunClient : IMailgunAccountInfo, IMailgunClient + { + /// + /// Initializes a new client for the specified domain and api key. + /// + public MailgunClient(string domain, string apiKey, int version, string region = "us") + { + DomainBaseUrl = new Uri($"https://api.{(!region.Equals("us") ? $"{region}." : "")}mailgun.net/v{version}/{domain}/"); + ApiKey = apiKey; + } + + public Uri DomainBaseUrl { get; private set; } + + public string ApiKey { get; private set; } + + public SendMailCommandResult SendMail(MailMessage mailMessage) + { + return new SendMailCommand(this, mailMessage).Invoke(); } public SendMailCommandResult SendBatchMail(MailMessage mailMessage) @@ -37,26 +37,26 @@ public SendMailCommandResult SendBatchMail(MailMessage mailMessage) public SendMailCommandResult SendBatchMail(MailMessage mailMessage, IDictionary> recipientVariables) { return new SendMailCommand(this, mailMessage, recipientVariables).Invoke(); - } - - public IEnumerable GetRoutes(int skip, int take, out int count) - { - return new MailgunRouteQuery(this).Execute(skip, take, out count); - } - - public Route CreateRoute(int priority, string description, RouteFilter expression, params RouteAction[] actions) - { - return new CreateRouteCommand(this, priority, description, expression, actions).Invoke().Route; - } - - public CommandResult DeleteRoute(string routeId) - { - return new DeleteCommand(this, "../routes/" + routeId).Invoke(); - } - - public IEnumerable GetStats(int skip, int take, MailgunEventTypes eventTypes, out int count) - { - return new MailgunStatsQuery(this, eventTypes).Execute(skip, take, out count); - } - } -} + } + + public IEnumerable GetRoutes(int skip, int take, out int count) + { + return new MailgunRouteQuery(this).Execute(skip, take, out count); + } + + public Route CreateRoute(int priority, string description, RouteFilter expression, params RouteAction[] actions) + { + return new CreateRouteCommand(this, priority, description, expression, actions).Invoke().Route; + } + + public CommandResult DeleteRoute(string routeId) + { + return new DeleteCommand(this, "../routes/" + routeId).Invoke(); + } + + public IEnumerable GetStats(int skip, int take, MailgunEventTypes eventTypes, out int count) + { + return new MailgunStatsQuery(this, eventTypes).Execute(skip, take, out count); + } + } +}