From 3a84c1350ade54190bc5bc584d64592576ef2bc1 Mon Sep 17 00:00:00 2001 From: kirilsi Date: Fri, 6 Sep 2019 11:38:48 +0300 Subject: [PATCH 1/3] Removed repository settings for line endings --- .gitattributes | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitattributes b/.gitattributes index 83fb9913..1a414a6a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1 @@ # Declare files that will always have CRLF line endings on checkout. -* text eol=lf From 5af575578f5c1932ff4ab9569f4ca95417ef15b4 Mon Sep 17 00:00:00 2001 From: kirilsi Date: Mon, 9 Sep 2019 12:01:54 +0300 Subject: [PATCH 2/3] Added NuGet local settings to specify download location. --- src/NuGet.Config | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 src/NuGet.Config diff --git a/src/NuGet.Config b/src/NuGet.Config new file mode 100644 index 00000000..abc5b137 --- /dev/null +++ b/src/NuGet.Config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file From f2d90e536dcb1e8d87c5fb5f19c2d7085dd77f7a Mon Sep 17 00:00:00 2001 From: kirilsi Date: Mon, 9 Sep 2019 12:05:34 +0300 Subject: [PATCH 3/3] Added custom request URL support to Message Events API for pagination using Links.Next URL from the previous response. --- src/SparkPost/IMessageEvents.cs | 3 ++- src/SparkPost/MessageEvents.cs | 22 +++++++++++++++------- src/SparkPost/MessageEventsQuery.cs | 15 +++++++-------- 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/src/SparkPost/IMessageEvents.cs b/src/SparkPost/IMessageEvents.cs index a4a58cd9..4e073225 100644 --- a/src/SparkPost/IMessageEvents.cs +++ b/src/SparkPost/IMessageEvents.cs @@ -5,7 +5,8 @@ namespace SparkPost public interface IMessageEvents { Task List(); - Task List(object query); + Task List(MessageEventsQuery query); + Task List(string url); Task SamplesOf(string events); } } \ No newline at end of file diff --git a/src/SparkPost/MessageEvents.cs b/src/SparkPost/MessageEvents.cs index 5139e48b..42f84e98 100644 --- a/src/SparkPost/MessageEvents.cs +++ b/src/SparkPost/MessageEvents.cs @@ -1,8 +1,8 @@ -using System.Collections.Generic; using SparkPost.RequestSenders; +using SparkPost.Utilities; +using System.Collections.Generic; using System.Net; using System.Threading.Tasks; -using SparkPost.Utilities; namespace SparkPost { @@ -19,18 +19,26 @@ public MessageEvents(IClient client, IRequestSender requestSender) public async Task List() { - return await List(null); + return await List((MessageEventsQuery)null); } - public async Task List(object messageEventsQuery) + public async Task List(MessageEventsQuery messageEventsQuery) { - if (messageEventsQuery == null) messageEventsQuery = new { }; + return await this.List($"/api/{client.Version}/events/message", messageEventsQuery); + } + public async Task List(string url) + { + return await this.List(url, null); + } + + public async Task List(string url, MessageEventsQuery messageEventsQuery) + { var request = new Request { - Url = $"/api/{client.Version}/events/message", + Url = url, Method = "GET", - Data = messageEventsQuery + Data = (object)messageEventsQuery ?? new { } }; var response = await requestSender.Send(request); diff --git a/src/SparkPost/MessageEventsQuery.cs b/src/SparkPost/MessageEventsQuery.cs index 87ba93f5..ead8871d 100644 --- a/src/SparkPost/MessageEventsQuery.cs +++ b/src/SparkPost/MessageEventsQuery.cs @@ -1,7 +1,5 @@ -using SparkPost.Utilities; using System; using System.Collections.Generic; -using System.Linq; namespace SparkPost { @@ -58,16 +56,17 @@ public MessageEventsQuery() public IList MessageIds { get; set; } /// - /// page : number : The results page number to return. Used with per_page for paging through results. - /// Example: 25. - /// Default: 1. + /// cursor : String : Results cursor for pagination. Used in conjunction with per_page parameter. See Pagination section for details. + /// Example: WycyMDE4LTExLTA1VDIyOjQ1OjM5LjAwMFonLCAnc3BjLTM4MTQ1MjY3MjMyNTA2NTEwJ10=. + /// Default: initial. /// - public int? Page { get; set; } + public string Cursor { get; set; } /// - /// per_page : Number : Number of results to return per page. Must be between 1 and 10,000 (inclusive). - /// Example: 100. + /// per_page : Number : Maximum number of results to return per page. Must be between 1 and 10,000. + /// Example: 5000. /// Default: 1000. + /// Note: Pagination requests count towards the number of requests allowed by rate limiting, the same as non-paginated requests. /// public int? PerPage { get; set; }