1
1
package postmark
2
2
3
3
import (
4
+ "context"
4
5
"fmt"
5
6
"net/url"
6
7
"time"
@@ -64,10 +65,15 @@ type MessageEvent struct {
64
65
///////////////////////////////////////
65
66
///////////////////////////////////////
66
67
67
- // GetOutboundMessage fetches a specific outbound message via serverID
68
+ // GetOutboundMessage calls GetOutboundMessageWithContext with empty context
68
69
func (client * Client ) GetOutboundMessage (messageID string ) (OutboundMessage , error ) {
70
+ return client .GetOutboundMessageWithContext (context .TODO (), messageID )
71
+ }
72
+
73
+ // GetOutboundMessageWithContext fetches a specific outbound message via serverID
74
+ func (client * Client ) GetOutboundMessageWithContext (ctx context.Context , messageID string ) (OutboundMessage , error ) {
69
75
res := OutboundMessage {}
70
- err := client .doRequest (parameters {
76
+ err := client .doRequest (ctx , parameters {
71
77
Method : "GET" ,
72
78
Path : fmt .Sprintf ("messages/outbound/%s/details" , messageID ),
73
79
TokenType : server_token ,
@@ -78,10 +84,15 @@ func (client *Client) GetOutboundMessage(messageID string) (OutboundMessage, err
78
84
///////////////////////////////////////
79
85
///////////////////////////////////////
80
86
81
- // GetOutboundMessageDump fetches the raw source of message. If no dump is available this will return an empty string.
87
+ // GetOutboundMessageDump calls GetOutboundMessageDumpWithContext with empty context
82
88
func (client * Client ) GetOutboundMessageDump (messageID string ) (string , error ) {
89
+ return client .GetOutboundMessageDumpWithContext (context .TODO (), messageID )
90
+ }
91
+
92
+ // GetOutboundMessageDumpWithContext fetches the raw source of message. If no dump is available this will return an empty string.
93
+ func (client * Client ) GetOutboundMessageDumpWithContext (ctx context.Context , messageID string ) (string , error ) {
83
94
res := dumpResponse {}
84
- err := client .doRequest (parameters {
95
+ err := client .doRequest (ctx , parameters {
85
96
Method : "GET" ,
86
97
Path : fmt .Sprintf ("messages/outbound/%s/dump" , messageID ),
87
98
TokenType : server_token ,
@@ -97,11 +108,16 @@ type outboundMessagesResponse struct {
97
108
Messages []OutboundMessage
98
109
}
99
110
100
- // GetOutboundMessages fetches a list of outbound message on the server
111
+ // GetOutboundMessages calls GetOutboundMessagesWithContext with empty context
112
+ func (client * Client ) GetOutboundMessages (count int64 , offset int64 , options map [string ]interface {}) ([]OutboundMessage , int64 , error ) {
113
+ return client .GetOutboundMessagesWithContext (context .TODO (), count , offset , options )
114
+ }
115
+
116
+ // GetOutboundMessagesWithContext fetches a list of outbound message on the server
101
117
// It returns a OutboundMessage slice, the total message count, and any error that occurred
102
118
// Note: that a single open is bound to a single recipient, so if the same message was sent to two recipients and both of them opened it, that will be represented by two entries in this array.
103
119
// Available options: http://developer.postmarkapp.com/developer-api-messages.html#outbound-message-search
104
- func (client * Client ) GetOutboundMessages ( count int64 , offset int64 , options map [string ]interface {}) ([]OutboundMessage , int64 , error ) {
120
+ func (client * Client ) GetOutboundMessagesWithContext ( ctx context. Context , count int64 , offset int64 , options map [string ]interface {}) ([]OutboundMessage , int64 , error ) {
105
121
res := outboundMessagesResponse {}
106
122
107
123
values := & url.Values {}
@@ -112,7 +128,7 @@ func (client *Client) GetOutboundMessages(count int64, offset int64, options map
112
128
values .Add (k , fmt .Sprintf ("%v" , v ))
113
129
}
114
130
115
- err := client .doRequest (parameters {
131
+ err := client .doRequest (ctx , parameters {
116
132
Method : "GET" ,
117
133
Path : fmt .Sprintf ("messages/outbound?%s" , values .Encode ()),
118
134
TokenType : server_token ,
@@ -148,11 +164,16 @@ type outboundMessageOpensResponse struct {
148
164
Opens []Open
149
165
}
150
166
167
+ // GetOutboundMessagesOpens calls GetOutboundMessagesOpensWithContext with empty context
168
+ func (client * Client ) GetOutboundMessagesOpens (count int64 , offset int64 , options map [string ]interface {}) ([]Open , int64 , error ) {
169
+ return client .GetOutboundMessagesOpensWithContext (context .TODO (), count , offset , options )
170
+ }
171
+
151
172
// GetOutboundMessagesOpens fetches a list of opens on the server
152
173
// It returns a Open slice, the total opens count, and any error that occurred
153
174
// To get opens for a specific message, use GetOutboundMessageOpens()
154
175
// Available options: http://developer.postmarkapp.com/developer-api-messages.html#message-opens
155
- func (client * Client ) GetOutboundMessagesOpens ( count int64 , offset int64 , options map [string ]interface {}) ([]Open , int64 , error ) {
176
+ func (client * Client ) GetOutboundMessagesOpensWithContext ( ctx context. Context , count int64 , offset int64 , options map [string ]interface {}) ([]Open , int64 , error ) {
156
177
res := outboundMessageOpensResponse {}
157
178
158
179
values := & url.Values {}
@@ -163,7 +184,7 @@ func (client *Client) GetOutboundMessagesOpens(count int64, offset int64, option
163
184
values .Add (k , fmt .Sprintf ("%v" , v ))
164
185
}
165
186
166
- err := client .doRequest (parameters {
187
+ err := client .doRequest (ctx , parameters {
167
188
Method : "GET" ,
168
189
Path : fmt .Sprintf ("messages/outbound/opens?%s" , values .Encode ()),
169
190
TokenType : server_token ,
@@ -174,16 +195,21 @@ func (client *Client) GetOutboundMessagesOpens(count int64, offset int64, option
174
195
///////////////////////////////////////
175
196
///////////////////////////////////////
176
197
177
- // GetOutboundMessageOpens fetches a list of opens for a specific message
178
- // It returns a Open slice, the total opens count, and any error that occurred
198
+ // GetOutboundMessageOpens calls GetOutboundMessageOpensWithContext with empty context
179
199
func (client * Client ) GetOutboundMessageOpens (messageID string , count int64 , offset int64 ) ([]Open , int64 , error ) {
200
+ return client .GetOutboundMessageOpensWithContext (context .TODO (), messageID , count , offset )
201
+ }
202
+
203
+ // GetOutboundMessageOpensWithContext fetches a list of opens for a specific message
204
+ // It returns a Open slice, the total opens count, and any error that occurred
205
+ func (client * Client ) GetOutboundMessageOpensWithContext (ctx context.Context , messageID string , count int64 , offset int64 ) ([]Open , int64 , error ) {
180
206
res := outboundMessageOpensResponse {}
181
207
182
208
values := & url.Values {}
183
209
values .Add ("count" , fmt .Sprintf ("%d" , count ))
184
210
values .Add ("offset" , fmt .Sprintf ("%d" , offset ))
185
211
186
- err := client .doRequest (parameters {
212
+ err := client .doRequest (ctx , parameters {
187
213
Method : "GET" ,
188
214
Path : fmt .Sprintf ("messages/outbound/opens/%s?%s" , messageID , values .Encode ()),
189
215
TokenType : server_token ,
0 commit comments