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 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 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; }