Skip to content

Commit e6b2fe4

Browse files
authored
Merge pull request #66 from neonidian/fix/parallel-requests
#62 Fix async parallel request
2 parents f226e1a + f91dc67 commit e6b2fe4

File tree

3 files changed

+31
-23
lines changed

3 files changed

+31
-23
lines changed

dist/index.js

+15-11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/requests/post-request.js

+15-11
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,21 @@ const postRequest = async function (webhookUrls, jsonPayload) {
88
try {
99
core.info('Sending POST request to Teams');
1010
core.debug(`JSON payload: ${JSON.stringify(jsonPayload)}`);
11-
return await Promise.all(webhookUrls.map(async webhookUrl =>
12-
await new httpClient.HttpClient().postJson(webhookUrl, jsonPayload, header)
13-
.then(response => {
14-
core.debug(`Received response: "${response.result}" from Teams server`);
15-
if (response.result === 1) {
16-
core.info('Message has been sent to Teams');
17-
} else {
18-
throw new Error(`Message not sent. Received response from Teams: "${response.result}"`);
19-
}
20-
return response.result;
21-
})));
11+
const requestsPromises = webhookUrls.map(webhookUrl =>
12+
new Promise(resolve => resolve(new httpClient.HttpClient().postJson(webhookUrl, jsonPayload, header))));
13+
return await Promise.all(requestsPromises)
14+
.then(response =>
15+
response.map((response, index) => {
16+
const webhookUrlNumber = index + 1;
17+
core.debug(`Received response: "${response.result}" from Teams server ${webhookUrlNumber !== 1 ? `for webhook URL number "${webhookUrlNumber}"` : ""}`);
18+
if (response.result === 1) {
19+
core.info(`Message has been sent to Teams ${webhookUrlNumber !== 1 ? `for webhook URL number "${webhookUrlNumber}"` : ""}`);
20+
} else {
21+
throw new Error(`Message not sent. Received response from Teams: "${response.result}" ${webhookUrlNumber !== 1 ? `for webhook URL number "${webhookUrlNumber}"` : ""}`);
22+
}
23+
return response.result;
24+
})
25+
);
2226
} catch (error) {
2327
throw new Error(`Sending POST request to Teams failed\n${error}`);
2428
}

verify/http-request-tests/title-enabled.test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ describe('Title enabled', () => {
6363

6464
test('Send a short message with buttons and status with title and title bg colour', async () => {
6565
process.env = Object.assign(process.env, { [SHOULD_DISPLAY_VIEW_RUN_BUTTON]: 'false', [SHOULD_DISPLAY_VIEW_COMMIT_BUTTON]: 'true' });
66-
const messageToSend = 'With title and title bg colour yellow. with view commit button.';
66+
const messageToSend = 'With title and title bg colour yellow. with view commit button and status label cancelled.';
6767
let response = await main(_teamsIncomingHookUrl, messageToSend,{ status: 'cancelled', titleBackgroundColor: 'yellow', title: 'Custom Title', });
6868
expect(response).toEqual(responseBody);
6969
});

0 commit comments

Comments
 (0)