Skip to content

Commit 034f69e

Browse files
authored
Merge pull request #1 from kirilsi/jomargon-ISSUE-182
Added custom request URL support to Message Events API
2 parents be81cf1 + f2d90e5 commit 034f69e

File tree

5 files changed

+30
-17
lines changed

5 files changed

+30
-17
lines changed

.gitattributes

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
# Declare files that will always have CRLF line endings on checkout.
2-
* text eol=lf

src/NuGet.Config

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<configuration>
3+
<config>
4+
<add key="repositoryPath" value="packages" />
5+
</config>
6+
</configuration>

src/SparkPost/IMessageEvents.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ namespace SparkPost
55
public interface IMessageEvents
66
{
77
Task<ListMessageEventsResponse> List();
8-
Task<ListMessageEventsResponse> List(object query);
8+
Task<ListMessageEventsResponse> List(MessageEventsQuery query);
9+
Task<ListMessageEventsResponse> List(string url);
910
Task<MessageEventSampleResponse> SamplesOf(string events);
1011
}
1112
}

src/SparkPost/MessageEvents.cs

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
using System.Collections.Generic;
21
using SparkPost.RequestSenders;
2+
using SparkPost.Utilities;
3+
using System.Collections.Generic;
34
using System.Net;
45
using System.Threading.Tasks;
5-
using SparkPost.Utilities;
66

77
namespace SparkPost
88
{
@@ -19,18 +19,26 @@ public MessageEvents(IClient client, IRequestSender requestSender)
1919

2020
public async Task<ListMessageEventsResponse> List()
2121
{
22-
return await List(null);
22+
return await List((MessageEventsQuery)null);
2323
}
2424

25-
public async Task<ListMessageEventsResponse> List(object messageEventsQuery)
25+
public async Task<ListMessageEventsResponse> List(MessageEventsQuery messageEventsQuery)
2626
{
27-
if (messageEventsQuery == null) messageEventsQuery = new { };
27+
return await this.List($"/api/{client.Version}/events/message", messageEventsQuery);
28+
}
2829

30+
public async Task<ListMessageEventsResponse> List(string url)
31+
{
32+
return await this.List(url, null);
33+
}
34+
35+
public async Task<ListMessageEventsResponse> List(string url, MessageEventsQuery messageEventsQuery)
36+
{
2937
var request = new Request
3038
{
31-
Url = $"/api/{client.Version}/events/message",
39+
Url = url,
3240
Method = "GET",
33-
Data = messageEventsQuery
41+
Data = (object)messageEventsQuery ?? new { }
3442
};
3543

3644
var response = await requestSender.Send(request);

src/SparkPost/MessageEventsQuery.cs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
using SparkPost.Utilities;
21
using System;
32
using System.Collections.Generic;
4-
using System.Linq;
53

64
namespace SparkPost
75
{
@@ -58,16 +56,17 @@ public MessageEventsQuery()
5856
public IList<string> MessageIds { get; set; }
5957

6058
/// <summary>
61-
/// page : number : The results page number to return. Used with per_page for paging through results.
62-
/// Example: 25.
63-
/// Default: 1.
59+
/// cursor : String : Results cursor for pagination. Used in conjunction with per_page parameter. See Pagination section for details.
60+
/// Example: WycyMDE4LTExLTA1VDIyOjQ1OjM5LjAwMFonLCAnc3BjLTM4MTQ1MjY3MjMyNTA2NTEwJ10=.
61+
/// Default: initial.
6462
/// </summary>
65-
public int? Page { get; set; }
63+
public string Cursor { get; set; }
6664

6765
/// <summary>
68-
/// per_page : Number : Number of results to return per page. Must be between 1 and 10,000 (inclusive).
69-
/// Example: 100.
66+
/// per_page : Number : Maximum number of results to return per page. Must be between 1 and 10,000.
67+
/// Example: 5000.
7068
/// Default: 1000.
69+
/// Note: Pagination requests count towards the number of requests allowed by rate limiting, the same as non-paginated requests.
7170
/// </summary>
7271
public int? PerPage { get; set; }
7372

0 commit comments

Comments
 (0)