Skip to content

Commit 0774c88

Browse files
BKNDLSS-26559 Adapt the sendEmailFromTemplate method if no templateValue is provided (#221)
1 parent 061d2b7 commit 0774c88

File tree

4 files changed

+47
-1
lines changed

4 files changed

+47
-1
lines changed

backendless.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,8 @@ declare module Backendless {
377377

378378
function sendEmailFromTemplate(templateName: string, emailEnvelope: Backendless.EmailEnvelope, templateValues?: object, attachments?: string[]): Promise<object>;
379379

380+
function sendEmailFromTemplate(templateName: string, emailEnvelope: Backendless.EmailEnvelope, attachments?: string[]): Promise<object>;
381+
380382
function cancel(messageId: string): Promise<boolean>;
381383

382384
function registerDevice(deviceToken: string, channels?: string[], expiration?: number | Date): Promise<Object>;

src/messaging/index.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,10 +118,14 @@ export default class Messaging {
118118

119119
data['template-name'] = templateName
120120

121-
if (templateValues) {
121+
if (templateValues && !Array.isArray(templateValues)) {
122122
data['template-values'] = templateValues
123123
}
124124

125+
if (Array.isArray(templateValues) && !attachments) {
126+
attachments = templateValues
127+
}
128+
125129
if (attachments) {
126130
data.attachment = attachments
127131
}

test/tsd.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1000,6 +1000,8 @@ function testMessaging() {
10001000

10011001
promiseObject = Backendless.Messaging.sendEmailFromTemplate(templateName, envelopeObject, templateValues);
10021002

1003+
promiseObject = Backendless.Messaging.sendEmailFromTemplate(templateName, envelopeObject, attachments);
1004+
10031005
promiseObject = Backendless.Messaging.sendEmailFromTemplate(templateName, envelopeObject);
10041006

10051007
promiseObject = Backendless.Messaging.cancel(messageId);

test/unit/specs/messaging/emails.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,44 @@ describe('<Messaging> Emails', function() {
275275
expect(result1).to.be.eql({ fakeResult })
276276
})
277277

278+
it('sends an email with attachments without templateValues', async () => {
279+
const req1 = prepareMockRequest({ fakeResult })
280+
281+
const result1 = await Backendless.Messaging.sendEmailFromTemplate(templateName, emailEnvelope, null, attachments)
282+
283+
expect(req1).to.deep.include({
284+
method : 'POST',
285+
path : `${APP_PATH}/emailtemplate/send`,
286+
headers: { 'Content-Type': 'application/json' },
287+
body : {
288+
addresses : ['foo@bar.com'],
289+
'template-name' : templateName,
290+
attachment: attachments
291+
}
292+
})
293+
294+
expect(result1).to.be.eql({ fakeResult })
295+
})
296+
297+
it('sends an email with attachments on templateValues argument place', async () => {
298+
const req1 = prepareMockRequest({ fakeResult })
299+
300+
const result1 = await Backendless.Messaging.sendEmailFromTemplate(templateName, emailEnvelope, attachments)
301+
302+
expect(req1).to.deep.include({
303+
method : 'POST',
304+
path : `${APP_PATH}/emailtemplate/send`,
305+
headers: { 'Content-Type': 'application/json' },
306+
body : {
307+
addresses : ['foo@bar.com'],
308+
'template-name' : templateName,
309+
attachment: attachments
310+
}
311+
})
312+
313+
expect(result1).to.be.eql({ fakeResult })
314+
})
315+
278316
it('fails when subject is invalid', async () => {
279317
const errorMsg = 'Email Template Name must be provided and must be a string.'
280318

0 commit comments

Comments
 (0)