Skip to content

Commit f426db1

Browse files
committed
Delete keys if its value is undefined with strict way
1 parent 4b7bba6 commit f426db1

7 files changed

Lines changed: 168 additions & 202 deletions

File tree

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

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,36 @@
1414
"{{param.baseName}}": {{param.paramName}},
1515
{% endfor %}
1616
};
17-
(Object.keys(formParams) as Array<keyof typeof formParams>).forEach((key) => {
18-
if (formParams[key] === undefined) {
19-
delete (formParams as Partial<typeof formParams>)[key];
20-
}
21-
});
17+
18+
{% for param in op.formParams -%}
19+
{% if param.required == false %}
20+
if (formParams["{{param.baseName}}"] === undefined) {
21+
delete formParams["{{param.baseName}}"];
22+
}
23+
{% endif -%}
24+
{% endfor %}
25+
2226
{% elseif op.hasQueryParams %}const queryParams = {
2327
{% for param in op.queryParams -%}
24-
{% if param.isArray -%}
25-
"{{param.baseName}}": {{param.paramName}} ? [...{{param.paramName}}].join(",") : undefined,
28+
{% if param.isArray and param.required == false -%}
29+
"{{param.baseName}}": {{param.paramName}} != null
30+
? [...{{param.paramName}}].join(",")
31+
: undefined,
32+
{% elseif param.isArray -%}
33+
"{{param.baseName}}": [...{{param.paramName}}].join(","),
2634
{% else -%}
2735
"{{param.baseName}}": {{param.paramName}},
2836
{% endif -%}
2937
{% endfor %}
3038
};
31-
(Object.keys(queryParams) as Array<keyof typeof queryParams>).forEach((key) => {
32-
if (queryParams[key] === undefined) {
33-
delete (queryParams as Partial<typeof queryParams>)[key];
34-
}
35-
});
39+
40+
{% for param in op.queryParams -%}
41+
{% if param.required == false %}
42+
if (queryParams["{{param.baseName}}"] === undefined) {
43+
delete queryParams["{{param.baseName}}"];
44+
}
45+
{% endif -%}
46+
{% endfor %}
3647
{% endif %}
3748
{% if op.hasHeaderParams %}const headerParams = {
3849
{% for param in op.headerParams -%}

lib/channel-access-token/api/channelAccessTokenClient.ts

Lines changed: 20 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,6 @@ export class ChannelAccessTokenClient {
8383
client_assertion_type: clientAssertionType,
8484
client_assertion: clientAssertion,
8585
};
86-
(Object.keys(queryParams) as Array<keyof typeof queryParams>).forEach(
87-
key => {
88-
if (queryParams[key] === undefined) {
89-
delete (queryParams as Partial<typeof queryParams>)[key];
90-
}
91-
},
92-
);
9386

9487
const res = await this.httpClient.get(
9588
"/oauth2/v2.1/tokens/kid",
@@ -140,11 +133,6 @@ export class ChannelAccessTokenClient {
140133
client_id: clientId,
141134
client_secret: clientSecret,
142135
};
143-
(Object.keys(formParams) as Array<keyof typeof formParams>).forEach(key => {
144-
if (formParams[key] === undefined) {
145-
delete (formParams as Partial<typeof formParams>)[key];
146-
}
147-
});
148136

149137
const res = await this.httpClient.postForm(
150138
"/v2/oauth/accessToken",
@@ -195,11 +183,6 @@ export class ChannelAccessTokenClient {
195183
client_assertion_type: clientAssertionType,
196184
client_assertion: clientAssertion,
197185
};
198-
(Object.keys(formParams) as Array<keyof typeof formParams>).forEach(key => {
199-
if (formParams[key] === undefined) {
200-
delete (formParams as Partial<typeof formParams>)[key];
201-
}
202-
});
203186

204187
const res = await this.httpClient.postForm(
205188
"/oauth2/v2.1/token",
@@ -264,11 +247,26 @@ export class ChannelAccessTokenClient {
264247
client_id: clientId,
265248
client_secret: clientSecret,
266249
};
267-
(Object.keys(formParams) as Array<keyof typeof formParams>).forEach(key => {
268-
if (formParams[key] === undefined) {
269-
delete (formParams as Partial<typeof formParams>)[key];
270-
}
271-
});
250+
251+
if (formParams["grant_type"] === undefined) {
252+
delete formParams["grant_type"];
253+
}
254+
255+
if (formParams["client_assertion_type"] === undefined) {
256+
delete formParams["client_assertion_type"];
257+
}
258+
259+
if (formParams["client_assertion"] === undefined) {
260+
delete formParams["client_assertion"];
261+
}
262+
263+
if (formParams["client_id"] === undefined) {
264+
delete formParams["client_id"];
265+
}
266+
267+
if (formParams["client_secret"] === undefined) {
268+
delete formParams["client_secret"];
269+
}
272270

273271
const res = await this.httpClient.postForm("/oauth2/v3/token", formParams);
274272
const text = await res.text();
@@ -300,11 +298,6 @@ export class ChannelAccessTokenClient {
300298
const formParams = {
301299
access_token: accessToken,
302300
};
303-
(Object.keys(formParams) as Array<keyof typeof formParams>).forEach(key => {
304-
if (formParams[key] === undefined) {
305-
delete (formParams as Partial<typeof formParams>)[key];
306-
}
307-
});
308301

309302
const res = await this.httpClient.postForm("/v2/oauth/revoke", formParams);
310303
const text = await res.text();
@@ -352,11 +345,6 @@ export class ChannelAccessTokenClient {
352345
client_secret: clientSecret,
353346
access_token: accessToken,
354347
};
355-
(Object.keys(formParams) as Array<keyof typeof formParams>).forEach(key => {
356-
if (formParams[key] === undefined) {
357-
delete (formParams as Partial<typeof formParams>)[key];
358-
}
359-
});
360348

361349
const res = await this.httpClient.postForm(
362350
"/oauth2/v2.1/revoke",
@@ -391,11 +379,6 @@ export class ChannelAccessTokenClient {
391379
const formParams = {
392380
access_token: accessToken,
393381
};
394-
(Object.keys(formParams) as Array<keyof typeof formParams>).forEach(key => {
395-
if (formParams[key] === undefined) {
396-
delete (formParams as Partial<typeof formParams>)[key];
397-
}
398-
});
399382

400383
const res = await this.httpClient.postForm("/v2/oauth/verify", formParams);
401384
const text = await res.text();
@@ -427,13 +410,6 @@ export class ChannelAccessTokenClient {
427410
const queryParams = {
428411
access_token: accessToken,
429412
};
430-
(Object.keys(queryParams) as Array<keyof typeof queryParams>).forEach(
431-
key => {
432-
if (queryParams[key] === undefined) {
433-
delete (queryParams as Partial<typeof queryParams>)[key];
434-
}
435-
},
436-
);
437413

438414
const res = await this.httpClient.get("/oauth2/v2.1/verify", queryParams);
439415
const text = await res.text();

lib/insight/api/insightClient.ts

Lines changed: 4 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -104,13 +104,6 @@ export class InsightClient {
104104
const queryParams = {
105105
requestId: requestId,
106106
};
107-
(Object.keys(queryParams) as Array<keyof typeof queryParams>).forEach(
108-
key => {
109-
if (queryParams[key] === undefined) {
110-
delete (queryParams as Partial<typeof queryParams>)[key];
111-
}
112-
},
113-
);
114107

115108
const res = await this.httpClient.get(
116109
"/v2/bot/insight/message/event",
@@ -147,13 +140,10 @@ export class InsightClient {
147140
const queryParams = {
148141
date: date,
149142
};
150-
(Object.keys(queryParams) as Array<keyof typeof queryParams>).forEach(
151-
key => {
152-
if (queryParams[key] === undefined) {
153-
delete (queryParams as Partial<typeof queryParams>)[key];
154-
}
155-
},
156-
);
143+
144+
if (queryParams["date"] === undefined) {
145+
delete queryParams["date"];
146+
}
157147

158148
const res = await this.httpClient.get(
159149
"/v2/bot/insight/followers",
@@ -190,13 +180,6 @@ export class InsightClient {
190180
const queryParams = {
191181
date: date,
192182
};
193-
(Object.keys(queryParams) as Array<keyof typeof queryParams>).forEach(
194-
key => {
195-
if (queryParams[key] === undefined) {
196-
delete (queryParams as Partial<typeof queryParams>)[key];
197-
}
198-
},
199-
);
200183

201184
const res = await this.httpClient.get(
202185
"/v2/bot/insight/message/delivery",
@@ -247,13 +230,6 @@ export class InsightClient {
247230
from: from,
248231
to: to,
249232
};
250-
(Object.keys(queryParams) as Array<keyof typeof queryParams>).forEach(
251-
key => {
252-
if (queryParams[key] === undefined) {
253-
delete (queryParams as Partial<typeof queryParams>)[key];
254-
}
255-
},
256-
);
257233

258234
const res = await this.httpClient.get(
259235
"/v2/bot/insight/message/event/aggregation",

lib/manage-audience/api/manageAudienceClient.ts

Lines changed: 40 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -326,13 +326,26 @@ export class ManageAudienceClient {
326326
includesExternalPublicGroups: includesExternalPublicGroups,
327327
createRoute: createRoute,
328328
};
329-
(Object.keys(queryParams) as Array<keyof typeof queryParams>).forEach(
330-
key => {
331-
if (queryParams[key] === undefined) {
332-
delete (queryParams as Partial<typeof queryParams>)[key];
333-
}
334-
},
335-
);
329+
330+
if (queryParams["description"] === undefined) {
331+
delete queryParams["description"];
332+
}
333+
334+
if (queryParams["status"] === undefined) {
335+
delete queryParams["status"];
336+
}
337+
338+
if (queryParams["size"] === undefined) {
339+
delete queryParams["size"];
340+
}
341+
342+
if (queryParams["includesExternalPublicGroups"] === undefined) {
343+
delete queryParams["includesExternalPublicGroups"];
344+
}
345+
346+
if (queryParams["createRoute"] === undefined) {
347+
delete queryParams["createRoute"];
348+
}
336349

337350
const res = await this.httpClient.get(
338351
"/v2/bot/audienceGroup/list",
@@ -433,13 +446,26 @@ export class ManageAudienceClient {
433446
createRoute: createRoute,
434447
includesOwnedAudienceGroups: includesOwnedAudienceGroups,
435448
};
436-
(Object.keys(queryParams) as Array<keyof typeof queryParams>).forEach(
437-
key => {
438-
if (queryParams[key] === undefined) {
439-
delete (queryParams as Partial<typeof queryParams>)[key];
440-
}
441-
},
442-
);
449+
450+
if (queryParams["description"] === undefined) {
451+
delete queryParams["description"];
452+
}
453+
454+
if (queryParams["status"] === undefined) {
455+
delete queryParams["status"];
456+
}
457+
458+
if (queryParams["size"] === undefined) {
459+
delete queryParams["size"];
460+
}
461+
462+
if (queryParams["createRoute"] === undefined) {
463+
delete queryParams["createRoute"];
464+
}
465+
466+
if (queryParams["includesOwnedAudienceGroups"] === undefined) {
467+
delete queryParams["includesOwnedAudienceGroups"];
468+
}
443469

444470
const res = await this.httpClient.get(
445471
"/v2/bot/audienceGroup/shared/list",

0 commit comments

Comments
 (0)