diff --git a/README.md b/README.md index 304ba70..fda6853 100644 --- a/README.md +++ b/README.md @@ -376,7 +376,7 @@ api ### api.triggerBroadcast(campaign_id, data, recipients) -Trigger an email broadcast using the email campaign's id. You can also optionally pass along custom data that will be merged with the liquid template, and additional conditions to filter recipients. +Trigger an email broadcast using the broadcast ID. You can also optionally pass along custom data that will be merged with the liquid template, and additional conditions to filter recipients. ```javascript api.triggerBroadcast(1, { name: "foo" }, { segment: { id: 7 } }); diff --git a/lib/api.ts b/lib/api.ts index e96bda0..b5ba0a6 100644 --- a/lib/api.ts +++ b/lib/api.ts @@ -123,7 +123,7 @@ export class APIClient { return this.request.get(`${this.apiRoot}/customers?email=${cleanEmail(email)}`); } - triggerBroadcast(id: string | number, data: RequestData, recipients: Recipients) { + triggerBroadcast(broadcastId: string | number, data: RequestData, recipients: Recipients) { let payload = {}; let customRecipientField = ( Object.keys(BROADCASTS_ALLOWED_RECIPIENT_FIELDS) as BroadcastsAllowedRecipientFieldsKeys[] @@ -138,7 +138,7 @@ export class APIClient { }; } - return this.request.post(`${this.apiRoot}/api/campaigns/${id}/triggers`, payload); + return this.request.post(`${this.apiRoot}/campaigns/${broadcastId}/triggers`, payload); } listExports() { diff --git a/test/api.ts b/test/api.ts index ed73a68..dd68f6a 100644 --- a/test/api.ts +++ b/test/api.ts @@ -255,7 +255,7 @@ test('#triggerBroadcast works', (t) => { sinon.stub(t.context.client.request, 'post'); t.context.client.triggerBroadcast(1, { type: 'data' }, { type: 'recipients' }); t.truthy( - (t.context.client.request.post as SinonStub).calledWith(`${RegionUS.apiUrl}/api/campaigns/1/triggers`, { + (t.context.client.request.post as SinonStub).calledWith(`${RegionUS.apiUrl}/campaigns/1/triggers`, { data: { type: 'data' }, recipients: { type: 'recipients' }, }), @@ -274,7 +274,7 @@ test('#triggerBroadcast works with emails', (t) => { }, ); t.truthy( - (t.context.client.request.post as SinonStub).calledWith(`${RegionUS.apiUrl}/api/campaigns/1/triggers`, { + (t.context.client.request.post as SinonStub).calledWith(`${RegionUS.apiUrl}/campaigns/1/triggers`, { data: { type: 'data' }, emails: ['test@email.com'], email_ignore_missing: true, @@ -287,7 +287,7 @@ test('#triggerBroadcast works with ids', (t) => { sinon.stub(t.context.client.request, 'post'); t.context.client.triggerBroadcast(1, { type: 'data' }, { ids: [1], id_ignore_missing: true }); t.truthy( - (t.context.client.request.post as SinonStub).calledWith(`${RegionUS.apiUrl}/api/campaigns/1/triggers`, { + (t.context.client.request.post as SinonStub).calledWith(`${RegionUS.apiUrl}/campaigns/1/triggers`, { data: { type: 'data' }, ids: [1], id_ignore_missing: true, @@ -300,7 +300,7 @@ test('#triggerBroadcast works with per_user_data', (t) => { const per_user_data = [{ id: 1, data: { very: 'important' } }]; t.context.client.triggerBroadcast(1, { type: 'data' }, { per_user_data, id_ignore_missing: true }); t.truthy( - (t.context.client.request.post as SinonStub).calledWith(`${RegionUS.apiUrl}/api/campaigns/1/triggers`, { + (t.context.client.request.post as SinonStub).calledWith(`${RegionUS.apiUrl}/campaigns/1/triggers`, { data: { type: 'data' }, per_user_data, id_ignore_missing: true, @@ -313,7 +313,7 @@ test('#triggerBroadcast works with data_file_url', (t) => { const data_file_url = 'https://my.s3.bucket.com'; t.context.client.triggerBroadcast(1, { type: 'data' }, { data_file_url, id_ignore_missing: true }); t.truthy( - (t.context.client.request.post as SinonStub).calledWith(`${RegionUS.apiUrl}/api/campaigns/1/triggers`, { + (t.context.client.request.post as SinonStub).calledWith(`${RegionUS.apiUrl}/campaigns/1/triggers`, { data: { type: 'data' }, data_file_url, id_ignore_missing: true, @@ -334,7 +334,7 @@ test('#triggerBroadcast discards extraneous fields', (t) => { }, ); t.truthy( - (t.context.client.request.post as SinonStub).calledWith(`${RegionUS.apiUrl}/api/campaigns/1/triggers`, { + (t.context.client.request.post as SinonStub).calledWith(`${RegionUS.apiUrl}/campaigns/1/triggers`, { data: { type: 'data' }, ids: [1], id_ignore_missing: true, diff --git a/test/request.ts b/test/request.ts index 08aad55..0fb26fe 100644 --- a/test/request.ts +++ b/test/request.ts @@ -345,10 +345,7 @@ test.serial('#handler makes a request and rejects with a bad JSON response', asy t.fail(); } catch (err: any) { - t.is( - err.message, - 'Unable to parse JSON. Error: SyntaxError: Unexpected token < in JSON at position 0 \nBody:\n ', - ); + t.regex(err.message, /Unexpected token <|Unable to parse JSON/); } });