diff options
author | Elmer Thomas <elmer@thinkingserious.com> | 2016-10-19 14:32:01 -0700 |
---|---|---|
committer | Elmer Thomas <elmer@thinkingserious.com> | 2016-10-19 14:32:01 -0700 |
commit | 05df5a910634e7bdfec8469f403fcde68ac572dd (patch) | |
tree | 9e45bb7002aea9ba1fd6c7f1aafb5caeada9d093 | |
parent | 66a3a4d367e67e0f8145d8aca4de25e068ccb533 (diff) | |
download | sendgrid-csharp-05df5a910634e7bdfec8469f403fcde68ac572dd.zip sendgrid-csharp-05df5a910634e7bdfec8469f403fcde68ac572dd.tar.gz sendgrid-csharp-05df5a910634e7bdfec8469f403fcde68ac572dd.tar.bz2 |
Combined SendGridAPIClient into Client
-rw-r--r-- | SendGrid/Example/Example.cs | 10 | ||||
-rw-r--r-- | SendGrid/SendGrid/Client.cs | 43 |
2 files changed, 14 insertions, 39 deletions
diff --git a/SendGrid/Example/Example.cs b/SendGrid/Example/Example.cs index 35c209b..8360a1b 100644 --- a/SendGrid/Example/Example.cs +++ b/SendGrid/Example/Example.cs @@ -31,9 +31,7 @@ namespace Example {
String apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY",
EnvironmentVariableTarget.User);
- SendGridAPIClient sg = new SendGridAPIClient(apiKey: apiKey,
- baseUri: "https://api.sendgrid.com",
- urlPath: "mail/send");
+ Client client = new Client(apiKey: apiKey);
Email from = new Email("dx@sendgrid.com");
String subject = "I'm replacing the subject tag";
@@ -46,9 +44,9 @@ namespace Example mail.Personalization[0].AddSubstitution("-city-", "Denver");
Console.WriteLine(mail.Get());
- Response response = await sg.Client.RequestAsync(method: SendGridAPIClient.Methods.POST,
- requestBody: mail.Get(),
- urlPath: "mail/send");
+ Response response = await client.RequestAsync(method: SendGridAPIClient.Methods.POST,
+ requestBody: mail.Get(),
+ urlPath: "mail/send");
Console.WriteLine(response.StatusCode);
Console.WriteLine(response.Body.ReadAsStringAsync().Result);
Console.WriteLine(response.Headers.ToString());
diff --git a/SendGrid/SendGrid/Client.cs b/SendGrid/SendGrid/Client.cs index 1aa8785..e58d9cb 100644 --- a/SendGrid/SendGrid/Client.cs +++ b/SendGrid/SendGrid/Client.cs @@ -12,36 +12,6 @@ using System.Reflection; namespace SendGrid { - public class SendGridAPIClient - { - private string _apiKey; - public string Version; - public Client Client; - private Uri _baseUri; - public enum Methods - { - GET, POST, PATCH, DELETE - } - - /// <summary> - /// Create a client that connects to the SendGrid Web API - /// </summary> - /// <param name="apiKey">Your SendGrid API Key</param> - /// <param name="baseUri">Base SendGrid API Uri</param> - public SendGridAPIClient(string apiKey, String baseUri = "https://api.sendgrid.com", String version = "v3", String urlPath = null) - { - _baseUri = new Uri(baseUri); - _apiKey = apiKey; - Version = Assembly.GetExecutingAssembly().GetName().Version.ToString(); - Dictionary<String, String> requestHeaders = new Dictionary<String, String>(); - requestHeaders.Add("Authorization", "Bearer " + apiKey); - requestHeaders.Add("Content-Type", "application/json"); - requestHeaders.Add("User-Agent", "sendgrid/" + Version + " csharp"); - requestHeaders.Add("Accept", "application/json"); - Client = new Client(host: baseUri, requestHeaders: requestHeaders, version: version, urlPath: urlPath); - } - } - public class Response { public HttpStatusCode StatusCode; @@ -111,8 +81,8 @@ namespace SendGrid /// <param name="version">API version, override AddVersion to customize</param> /// <param name="urlPath">Path to endpoint (e.g. /path/to/endpoint)</param> /// <returns>Interface to the SendGrid REST API</returns> - public Client(WebProxy webProxy, string host, Dictionary<string, string> requestHeaders = null, string version = null, string urlPath = null) - : this(host, requestHeaders, version, urlPath) + public Client(WebProxy webProxy, string apiKey, string host = "https://api.sendgrid.com", Dictionary<string, string> requestHeaders = null, string version = "v3", string urlPath = null) + : this(apiKey, host, requestHeaders, version, urlPath) { WebProxy = webProxy; } @@ -125,9 +95,16 @@ namespace SendGrid /// <param name="version">API version, override AddVersion to customize</param> /// <param name="urlPath">Path to endpoint (e.g. /path/to/endpoint)</param> /// <returns>Interface to the SendGrid REST API</returns> - public Client(string host, Dictionary<string, string> requestHeaders = null, string version = null, string urlPath = null) + public Client(string apiKey, string host = "https://api.sendgrid.com", Dictionary<string, string> requestHeaders = null, string version = "v3", string urlPath = null) { Host = host; + Version = Assembly.GetExecutingAssembly().GetName().Version.ToString(); + Dictionary<String, String> defaultHeaders = new Dictionary<String, String>(); + defaultHeaders.Add("Authorization", "Bearer " + apiKey); + defaultHeaders.Add("Content-Type", "application/json"); + defaultHeaders.Add("User-Agent", "sendgrid/" + Version + " csharp"); + defaultHeaders.Add("Accept", "application/json"); + AddRequestHeader(defaultHeaders); if (requestHeaders != null) { AddRequestHeader(requestHeaders); |