-
Notifications
You must be signed in to change notification settings - Fork 107
/
Messages.cs
191 lines (159 loc) · 6 KB
/
Messages.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
// --------------------------------------------------------------------------------------------------------------------
// <copyright file="Messages.cs" company="">
//
// </copyright>
// <summary>
// The mandrill api.
// </summary>
// --------------------------------------------------------------------------------------------------------------------
using System.Collections.Generic;
using System.Threading.Tasks;
using Mandrill.Models;
using Mandrill.Requests.Messages;
namespace Mandrill
{
/// <summary>
/// The mandrill api.
/// </summary>
public partial class MandrillApi : IMandrillApi
{
#region Public Methods and Operators
/// <summary>
/// The cancel scheduled message.
/// </summary>
/// <param name="request">
/// The request.
/// </param>
/// <returns>
/// The <see cref="ScheduledEmailResult" />.
/// </returns>
public async Task<ScheduledEmailResult> CancelScheduledMessage(CancelScheduledMessageRequest request)
{
string path = "messages/cancel-scheduled.json";
ScheduledEmailResult resp = await Post<ScheduledEmailResult>(path, request).ConfigureAwait(false);
return resp;
}
/// <summary>
/// Get the full content of a recently sent message.
/// </summary>
/// <param name="request">
/// The content.
/// </param>
/// <returns>
/// The <see cref="GetContent" />
/// </returns>
public async Task<Content> GetContent(ContentRequest request)
{
string path = "messages/content.json";
Content response = await Post<Content>(path, request).ConfigureAwait(false);
return response;
}
/// <summary>
/// Get the information for a single recently sent message.
/// </summary>
/// <param name="request">The request.</param>
/// <returns>The <see cref="Task" />.</returns>
public async Task<MessageInfo> GetInfo(MessageInfoRequest request)
{
string path = "messages/info.json";
MessageInfo result = await Post<MessageInfo>(path, request).ConfigureAwait(false);
return result;
}
/// <summary>
/// The list scheduled messages.
/// </summary>
/// <param name="request">
/// The request.
/// </param>
/// <returns>
/// The <see cref="List" />.
/// </returns>
public async Task<List<ScheduledEmailResult>> ListScheduledMessages(ListScheduledMessagesRequest request)
{
string path = "messages/list-scheduled.json";
List<ScheduledEmailResult> resp = await Post<List<ScheduledEmailResult>>(path, request).ConfigureAwait(false);
return resp;
}
/// <summary>
/// The reschedule message.
/// </summary>
/// <param name="id">
/// The id.
/// </param>
/// <param name="send_at">
/// The send_at.
/// </param>
/// <returns>
/// The <see cref="ScheduledEmailResult" />.
/// </returns>
public async Task<ScheduledEmailResult> RescheduleMessage(RescheduleMessageRequest request)
{
string path = "messages/reschedule.json";
ScheduledEmailResult response = await Post<ScheduledEmailResult>(path, request).ConfigureAwait(false);
return response;
}
/// <summary>
/// Search recently sent messages and optionally narrow by date range, tags, senders, and API keys. If no date range is specified,
/// results within the last 7 days are returned. This method may be called up to 20 times per minute. If you need the data more often,
/// you can use /messages/info.json to get the information for a single message, or webhooks to push activity to your own application for querying.
/// <see cref="https://mandrillapp.com/api/docs/messages.JSON.html#method=search">Mandrill API Documentation</see>
/// </summary>
/// <param name="request">The request.</param>
/// <returns>The <see cref="EmailResult"/>.</returns>
public async Task<List<SearchResult>> Search(SearchRequest request)
{
const string path = "messages/search.json";
var response = await Post<List<SearchResult>>(path, request).ConfigureAwait(false);
return response;
}
/// <summary>
/// Sends a new transactional message through Mandrill.
/// </summary>
/// <param name="message">
/// The message.
/// </param>
/// <param name="send_at">
/// The send_at.
/// </param>
/// <returns>
/// The <see cref="Task" />.
/// </returns>
public async Task<List<EmailResult>> SendMessage(SendMessageRequest request)
{
string path = "messages/send.json";
List<EmailResult> resp = await Post<List<EmailResult>>(path, request).ConfigureAwait(false);
return resp;
}
/// <summary>
/// Send a new transactional message through Mandrill using a template.
/// <see cref="https://mandrillapp.com/api/docs/messages.JSON.html#method=send-template">Mandrill API Documentation</see>
/// </summary>
/// <param name="request">The request.</param>
/// <returns>The <see cref="List{T}" />.</returns>
public async Task<List<EmailResult>> SendMessageTemplate(SendMessageTemplateRequest request)
{
string path = "messages/send-template.json";
List<EmailResult> resp = await Post<List<EmailResult>>(path, request).ConfigureAwait(false);
return resp;
}
/// <summary>
/// The send raw message.
/// </summary>
/// <param name="raw_message">
/// The raw_message.
/// </param>
/// <param name="send_at">
/// The send_at.
/// </param>
/// <returns>
/// The <see cref="List" />.
/// </returns>
public async Task<List<EmailResult>> SendRawMessage(SendRawMessageRequest request)
{
string path = "messages/send-raw.json";
List<EmailResult> response = await Post<List<EmailResult>>(path, request).ConfigureAwait(false);
return response;
}
#endregion
}
}