summaryrefslogtreecommitdiffstats
path: root/examples/subusers/subusers.cs
diff options
context:
space:
mode:
Diffstat (limited to 'examples/subusers/subusers.cs')
-rw-r--r--examples/subusers/subusers.cs218
1 files changed, 218 insertions, 0 deletions
diff --git a/examples/subusers/subusers.cs b/examples/subusers/subusers.cs
new file mode 100644
index 0000000..208e13c
--- /dev/null
+++ b/examples/subusers/subusers.cs
@@ -0,0 +1,218 @@
+using System;
+using SendGrid.Helpers.Mail;
+using System.Collections.Generic;
+
+string _apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User);
+dynamic sg = new SendGrid.SendGridAPIClient(_apiKey);
+
+////////////////////////////////////////////////////////
+// Create Subuser
+// POST /subusers
+
+string data = @"{
+ 'email': 'John@example.com',
+ 'ips': [
+ '1.1.1.1',
+ '2.2.2.2'
+ ],
+ 'password': 'johns_password',
+ 'username': 'John@example.com'
+}";
+dynamic response = sg.client.subusers.post(requestBody: data);
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.Body.ReadAsStringAsync().Result);
+Console.WriteLine(response.Headers.ToString());
+Console.ReadLine();
+
+////////////////////////////////////////////////////////
+// List all Subusers
+// GET /subusers
+
+string queryParams = @"{
+ 'limit': 0,
+ 'offset': 0,
+ 'username': 'test_string'
+}";
+dynamic response = sg.client.subusers.get(queryParams: queryParams);
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.Body.ReadAsStringAsync().Result);
+Console.WriteLine(response.Headers.ToString());
+Console.ReadLine();
+
+////////////////////////////////////////////////////////
+// Retrieve Subuser Reputations
+// GET /subusers/reputations
+
+string queryParams = @"{
+ 'usernames': 'test_string'
+}";
+dynamic response = sg.client.subusers.reputations.get(queryParams: queryParams);
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.Body.ReadAsStringAsync().Result);
+Console.WriteLine(response.Headers.ToString());
+Console.ReadLine();
+
+////////////////////////////////////////////////////////
+// Retrieve email statistics for your subusers.
+// GET /subusers/stats
+
+string queryParams = @"{
+ 'aggregated_by': 'day',
+ 'end_date': '2016-04-01',
+ 'limit': 1,
+ 'offset': 1,
+ 'start_date': '2016-01-01',
+ 'subusers': 'test_string'
+}";
+dynamic response = sg.client.subusers.stats.get(queryParams: queryParams);
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.Body.ReadAsStringAsync().Result);
+Console.WriteLine(response.Headers.ToString());
+Console.ReadLine();
+
+////////////////////////////////////////////////////////
+// Retrieve monthly stats for all subusers
+// GET /subusers/stats/monthly
+
+string queryParams = @"{
+ 'date': 'test_string',
+ 'limit': 1,
+ 'offset': 1,
+ 'sort_by_direction': 'asc',
+ 'sort_by_metric': 'test_string',
+ 'subuser': 'test_string'
+}";
+dynamic response = sg.client.subusers.stats.monthly.get(queryParams: queryParams);
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.Body.ReadAsStringAsync().Result);
+Console.WriteLine(response.Headers.ToString());
+Console.ReadLine();
+
+////////////////////////////////////////////////////////
+// Retrieve the totals for each email statistic metric for all subusers.
+// GET /subusers/stats/sums
+
+string queryParams = @"{
+ 'aggregated_by': 'day',
+ 'end_date': '2016-04-01',
+ 'limit': 1,
+ 'offset': 1,
+ 'sort_by_direction': 'asc',
+ 'sort_by_metric': 'test_string',
+ 'start_date': '2016-01-01'
+}";
+dynamic response = sg.client.subusers.stats.sums.get(queryParams: queryParams);
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.Body.ReadAsStringAsync().Result);
+Console.WriteLine(response.Headers.ToString());
+Console.ReadLine();
+
+////////////////////////////////////////////////////////
+// Enable/disable a subuser
+// PATCH /subusers/{subuser_name}
+
+string data = @"{
+ 'disabled': false
+}";
+var subuser_name = "test_url_param";
+dynamic response = sg.client.subusers._(subuser_name).patch(requestBody: data);
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.Body.ReadAsStringAsync().Result);
+Console.WriteLine(response.Headers.ToString());
+Console.ReadLine();
+
+////////////////////////////////////////////////////////
+// Delete a subuser
+// DELETE /subusers/{subuser_name}
+
+var subuser_name = "test_url_param";
+dynamic response = sg.client.subusers._(subuser_name).delete();
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.Body.ReadAsStringAsync().Result);
+Console.WriteLine(response.Headers.ToString());
+Console.ReadLine();
+
+////////////////////////////////////////////////////////
+// Update IPs assigned to a subuser
+// PUT /subusers/{subuser_name}/ips
+
+string data = @"[
+ '127.0.0.1'
+]";
+var subuser_name = "test_url_param";
+dynamic response = sg.client.subusers._(subuser_name).ips.put(requestBody: data);
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.Body.ReadAsStringAsync().Result);
+Console.WriteLine(response.Headers.ToString());
+Console.ReadLine();
+
+////////////////////////////////////////////////////////
+// Update Monitor Settings for a subuser
+// PUT /subusers/{subuser_name}/monitor
+
+string data = @"{
+ 'email': 'example@example.com',
+ 'frequency': 500
+}";
+var subuser_name = "test_url_param";
+dynamic response = sg.client.subusers._(subuser_name).monitor.put(requestBody: data);
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.Body.ReadAsStringAsync().Result);
+Console.WriteLine(response.Headers.ToString());
+Console.ReadLine();
+
+////////////////////////////////////////////////////////
+// Create monitor settings
+// POST /subusers/{subuser_name}/monitor
+
+string data = @"{
+ 'email': 'example@example.com',
+ 'frequency': 50000
+}";
+var subuser_name = "test_url_param";
+dynamic response = sg.client.subusers._(subuser_name).monitor.post(requestBody: data);
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.Body.ReadAsStringAsync().Result);
+Console.WriteLine(response.Headers.ToString());
+Console.ReadLine();
+
+////////////////////////////////////////////////////////
+// Retrieve monitor settings for a subuser
+// GET /subusers/{subuser_name}/monitor
+
+var subuser_name = "test_url_param";
+dynamic response = sg.client.subusers._(subuser_name).monitor.get();
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.Body.ReadAsStringAsync().Result);
+Console.WriteLine(response.Headers.ToString());
+Console.ReadLine();
+
+////////////////////////////////////////////////////////
+// Delete monitor settings
+// DELETE /subusers/{subuser_name}/monitor
+
+var subuser_name = "test_url_param";
+dynamic response = sg.client.subusers._(subuser_name).monitor.delete();
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.Body.ReadAsStringAsync().Result);
+Console.WriteLine(response.Headers.ToString());
+Console.ReadLine();
+
+////////////////////////////////////////////////////////
+// Retrieve the monthly email statistics for a single subuser
+// GET /subusers/{subuser_name}/stats/monthly
+
+string queryParams = @"{
+ 'date': 'test_string',
+ 'limit': 0,
+ 'offset': 1,
+ 'sort_by_direction': 'asc',
+ 'sort_by_metric': 'test_string'
+}";
+var subuser_name = "test_url_param";
+dynamic response = sg.client.subusers._(subuser_name).stats.monthly.get(queryParams: queryParams);
+Console.WriteLine(response.StatusCode);
+Console.WriteLine(response.Body.ReadAsStringAsync().Result);
+Console.WriteLine(response.Headers.ToString());
+Console.ReadLine();
+