Skip to content

Commit 7046171

Browse files
authored
Skip sending header if headerParams is undefined or null (#587)
ec8f828#commitcomment-132344857
1 parent c8b67d1 commit 7046171

File tree

4 files changed

+39
-7
lines changed

4 files changed

+39
-7
lines changed

generator/src/main/resources/line-bot-sdk-nodejs-generator/apiBody/normal.pebble

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
{% endif %}
2222
{% if op.hasHeaderParams %}const headerParams = {
2323
{% for param in op.headerParams -%}
24-
"{{param.baseName}}": {{param.paramName}},
24+
...({{ param.paramName }} != null ? {"{{param.baseName}}": {{param.paramName}}} : {}),
2525
{% endfor %}
2626
};
2727
{% endif %}

lib/messaging-api/api/messagingApiClient.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ export class MessagingApiClient {
129129
const params = broadcastRequest;
130130

131131
const headerParams = {
132-
"X-Line-Retry-Key": xLineRetryKey,
132+
...(xLineRetryKey != null ? { "X-Line-Retry-Key": xLineRetryKey } : {}),
133133
};
134134

135135
const res = this.httpClient.post<object>(
@@ -784,7 +784,7 @@ export class MessagingApiClient {
784784
const params = multicastRequest;
785785

786786
const headerParams = {
787-
"X-Line-Retry-Key": xLineRetryKey,
787+
...(xLineRetryKey != null ? { "X-Line-Retry-Key": xLineRetryKey } : {}),
788788
};
789789

790790
const res = this.httpClient.post<object>(
@@ -809,7 +809,7 @@ export class MessagingApiClient {
809809
const params = narrowcastRequest;
810810

811811
const headerParams = {
812-
"X-Line-Retry-Key": xLineRetryKey,
812+
...(xLineRetryKey != null ? { "X-Line-Retry-Key": xLineRetryKey } : {}),
813813
};
814814

815815
const res = this.httpClient.post<object>(
@@ -834,7 +834,7 @@ export class MessagingApiClient {
834834
const params = pushMessageRequest;
835835

836836
const headerParams = {
837-
"X-Line-Retry-Key": xLineRetryKey,
837+
...(xLineRetryKey != null ? { "X-Line-Retry-Key": xLineRetryKey } : {}),
838838
};
839839

840840
const res = this.httpClient.post<PushMessageResponse>(
@@ -859,7 +859,9 @@ export class MessagingApiClient {
859859
const params = pnpMessagesRequest;
860860

861861
const headerParams = {
862-
"X-Line-Delivery-Tag": xLineDeliveryTag,
862+
...(xLineDeliveryTag != null
863+
? { "X-Line-Delivery-Tag": xLineDeliveryTag }
864+
: {}),
863865
};
864866

865867
const res = this.httpClient.post(

test/libs-messagingApi.spec.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,4 +89,35 @@ describe("messagingApi", () => {
8989
equal(requestCount, 1);
9090
deepEqual(res, {});
9191
});
92+
93+
it("pushMessage without xLineRetryKey", async () => {
94+
let requestCount = 0;
95+
server.use(
96+
http.post(
97+
"https://api.line.me/v2/bot/message/push",
98+
({ request, params, cookies }) => {
99+
requestCount++;
100+
101+
equal(
102+
request.headers.get("Authorization"),
103+
"Bearer test_channel_access_token",
104+
);
105+
equal(
106+
request.headers.get("User-Agent"),
107+
`${pkg.name}/${pkg.version}`,
108+
);
109+
equal(request.headers.get("content-type"), "application/json");
110+
equal(request.headers.get("x-line-retry-key"), undefined);
111+
return HttpResponse.json({});
112+
},
113+
),
114+
);
115+
116+
const res = await client.pushMessage(
117+
{ to: "uAAAAAAAAAAAAAA", messages: [{ type: "text", text: "aaaaaa" }] },
118+
undefined,
119+
);
120+
equal(requestCount, 1);
121+
deepEqual(res, {});
122+
});
92123
});

test/middleware.spec.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ describe("middleware", () => {
5858
deepEqual(req.body.events, [webhook]);
5959
}).timeout(6000);
6060

61-
6261
it("succeed with pre-parsed string", async () => {
6362
await http().post(`/mid-text`, {
6463
events: [webhook],

0 commit comments

Comments
 (0)