FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

added templates batch sending endpoint · rnjava86/postmark-java@1b9ca66 · GitHub

Commit 1b9ca66

Browse files
committed
added templates batch sending endpoint
1 parent f28fe1b commit 1b9ca66

1 file changed

Lines changed: 23 additions & 3 deletions

File tree

‎src/main/java/com/wildbit/java/postmark/client/ApiClient.java‎

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,17 +142,37 @@ public TemplateValidation validateTemplate(TemplateToValidate data) throws Postm
142142
return dataHandler.fromJson(response, TemplateValidation.class);
143143
}
144144

145-
public MessageResponse deliverMessage(TemplatedMessage data) throws PostmarkException, IOException {
145+
public MessageResponse deliverMessageWithTemplate(TemplatedMessage data) throws PostmarkException, IOException {
146+
setTemplateModelToObject(data);
146147

148+
String response = execute(HttpClient.REQUEST_TYPES.POST, getEndpointUrl(sendingEndpoint + "withTemplate"), data);
149+
return dataHandler.fromJson(response, MessageResponse.class);
150+
}
151+
152+
public ArrayList<MessageResponse> deliverMessageWithTemplate(ArrayList<TemplatedMessage> data) throws PostmarkException, IOException {
153+
154+
/*
155+
When sending array of emails with templates, additional top level field is used called "Messages".
156+
This introduces unnecessary difference between batch and batchWithTemplates endpoint in data model.
157+
To keep it simple, this additional level is added before executing batch send.
158+
*/
159+
HashMap<String, ArrayList> dataToSend = new HashMap<>();
160+
dataToSend.put("Messages", data);
161+
162+
for(TemplatedMessage templateMessage:data) { setTemplateModelToObject(templateMessage); }
163+
164+
String response = execute(HttpClient.REQUEST_TYPES.POST, getEndpointUrl(sendingEndpoint + "batchWithTemplates"), data);
165+
return dataHandler.fromJson(response, new TypeReference<ArrayList<MessageResponse>>() {});
166+
}
167+
168+
private void setTemplateModelToObject(TemplatedMessage data) throws IOException {
147169
/*
148170
Since template models can be complex, it is allowed that template model is a String or Object.
149171
If it's a String, we will auto convert it to Object.
150172
*/
151173
if (data.getTemplateModel().getClass() == String.class) {
152174
data.setTemplateModel(dataHandler.fromJson(data.getTemplateModel().toString(),Object.class));
153175
}
154-
String response = execute(HttpClient.REQUEST_TYPES.POST, getEndpointUrl(sendingEndpoint + "withTemplate"), data);
155-
return dataHandler.fromJson(response, MessageResponse.class);
156176
}
157177

158178

0 commit comments

Comments
 (0)

Back | FazBrowse Home | New Git URL