Skip to content

Commit bf4c83a

Browse files
authored
add richmenu alias api (#292)
1 parent 5fbbf66 commit bf4c83a

File tree

3 files changed

+156
-0
lines changed

3 files changed

+156
-0
lines changed

docs/api-reference/client.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ class Client {
5050
getRichMenu(richMenuId: string): Promise<RichMenuResponse>
5151
createRichMenu(richMenu: RichMenu): Promise<string>
5252
deleteRichMenu(richMenuId: string): Promise<any>
53+
getRichMenuAliasList(): Promise<any>
54+
getRichMenuAlias(richMenuAliasId: string): Promise<any>
55+
createRichMenuAlias(richMenuId: string, richMenuAliasId: string): Promise<any>
56+
deleteRichMenuAlias(richMenuAliasId: string): Promise<any>
57+
updateRichMenuAlias(richMenuAliasId: string, richMenuId: string): Promise<any>
5358
getRichMenuIdOfUser(userId: string): Promise<string>
5459
linkRichMenuToUser(userId: string, richMenuId: string): Promise<any>
5560
unlinkRichMenuFromUser(userId: string, richMenuId: string): Promise<any>
@@ -480,6 +485,54 @@ The argument is a rich menu ID.
480485
client.deleteRichMenu('rich_menu_id')
481486
```
482487

488+
#### `getRichMenuAliasList(): Promise<any>`
489+
490+
It corresponds to the [Get list of rich menu alias](https://developers.line.biz/en/reference/messaging-api/#get-rich-menu-alias-list) API.
491+
492+
``` js
493+
client.getRichMenuAliasList()
494+
```
495+
496+
#### `getRichMenuAlias(richMenuAliasId: string): Promise<any>`
497+
498+
It corresponds to the [Get rich menu alias information](https://developers.line.biz/en/reference/messaging-api/#get-rich-menu-alias-by-id) API.
499+
500+
The argument is a rich menu alias ID.
501+
502+
``` js
503+
client.getRichMenuAlias('rich_menu_alias_id')
504+
```
505+
506+
#### `createRichMenuAlias(richMenuId: string, richMenuAliasId: string): Promise<any>`
507+
508+
It corresponds to the [Create rich menu alias](https://developers.line.biz/en/reference/messaging-api/#create-rich-menu-alias) API.
509+
510+
The argument is a rich menu ID and a rich menu alias ID.
511+
512+
``` js
513+
client.createRichMenuAlias('rich_menu_id', 'rich_menu_alias_id')
514+
```
515+
516+
#### `deleteRichMenuAlias(richMenuAliasId: string): Promise<any>`
517+
518+
It corresponds to the [Delete rich menu alias](https://developers.line.biz/en/reference/messaging-api/#delete-rich-menu-alias) API.
519+
520+
The argument is a rich menu alias ID.
521+
522+
``` js
523+
client.deleteRichMenuAlias('rich_menu_alias_id')
524+
```
525+
526+
#### `updateRichMenuAlias(richMenuAliasId: string, richMenuId: string): Promise<any>`
527+
528+
It corresponds to the [Update rich menu alias](https://developers.line.biz/en/reference/messaging-api/#update-rich-menu-alias) API.
529+
530+
The argument is a rich menu alias ID and a rich menu ID.
531+
532+
``` js
533+
client.updateRichMenuAlias('rich_menu_alias_id', 'rich_menu_id')
534+
```
535+
483536
#### `getRichMenuIdOfUser(userId: string): Promise<string>`
484537

485538
It corresponds to the [Get rich menu ID of user](https://developers.line.biz/en/reference/messaging-api/#get-rich-menu-id-of-user) API.

lib/client.ts

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,55 @@ export default class Client {
285285
return this.http.delete(`${MESSAGING_API_PREFIX}/richmenu/${richMenuId}`);
286286
}
287287

288+
public async getRichMenuAliasList(): Promise<any> {
289+
const res = await this.http.get<any>(
290+
`${MESSAGING_API_PREFIX}/richmenu/alias/list`,
291+
);
292+
return ensureJSON(res);
293+
}
294+
295+
public async getRichMenuAlias(
296+
richMenuAliasId: string,
297+
): Promise<any> {
298+
const res = await this.http.get<any>(
299+
`${MESSAGING_API_PREFIX}/richmenu/alias/${richMenuAliasId}`,
300+
);
301+
return ensureJSON(res);
302+
}
303+
304+
public async createRichMenuAlias(
305+
richMenuId: string,
306+
richMenuAliasId: string,
307+
): Promise<any> {
308+
const res = await this.http.post<any>(
309+
`${MESSAGING_API_PREFIX}/richmenu/alias`,
310+
{
311+
richMenuId,
312+
richMenuAliasId,
313+
},
314+
);
315+
return ensureJSON(res);
316+
}
317+
318+
public async deleteRichMenuAlias(richMenuAliasId: string): Promise<any> {
319+
return this.http.delete(
320+
`${MESSAGING_API_PREFIX}/richmenu/alias/${richMenuAliasId}`,
321+
);
322+
}
323+
324+
public async updateRichMenuAlias(
325+
richMenuAliasId: string,
326+
richMenuId: string,
327+
): Promise<any> {
328+
const res = await this.http.put<{}>(
329+
`${MESSAGING_API_PREFIX}/richmenu/alias/${richMenuAliasId}`,
330+
{
331+
richMenuId,
332+
},
333+
);
334+
return ensureJSON(res);
335+
}
336+
288337
public async getRichMenuIdOfUser(userId: string): Promise<string> {
289338
const res = await this.http.get<any>(
290339
`${MESSAGING_API_PREFIX}/user/${userId}/richmenu`,

test/client.spec.ts

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,60 @@ describe("client", () => {
461461
deepEqual(res, {});
462462
});
463463

464+
it("getRichMenuAliasList", async () => {
465+
const scope = mockGet(MESSAGING_API_PREFIX, "/richmenu/alias/list");
466+
const res = await client.getRichMenuAliasList();
467+
equal(scope.isDone(), true);
468+
deepEqual(res, {});
469+
});
470+
471+
it("getRichMenuAlias", async () => {
472+
const richMenuAliasId = "test_rich_menu_alias_id";
473+
const scope = mockGet(
474+
MESSAGING_API_PREFIX,
475+
`/richmenu/alias/${richMenuAliasId}`,
476+
);
477+
const res = await client.getRichMenuAlias(richMenuAliasId);
478+
equal(scope.isDone(), true);
479+
deepEqual(res, {});
480+
});
481+
482+
it("createRichMenuAlias", async () => {
483+
const richMenuId = "test_rich_menu_id";
484+
const richMenuAliasId = "test_rich_menu_alias_id";
485+
const scope = mockPost(MESSAGING_API_PREFIX, "/richmenu/alias", {
486+
richMenuId,
487+
richMenuAliasId,
488+
});
489+
await client.createRichMenuAlias(richMenuId, richMenuAliasId);
490+
491+
equal(scope.isDone(), true);
492+
});
493+
494+
it("deleteRichMenuAlias", async () => {
495+
const scope = mockDelete(
496+
MESSAGING_API_PREFIX,
497+
"/richmenu/alias/test_rich_menu_alias_id",
498+
);
499+
const res = await client.deleteRichMenuAlias("test_rich_menu_alias_id");
500+
equal(scope.isDone(), true);
501+
deepEqual(res, {});
502+
});
503+
504+
it("updateRichMenuAlias", async () => {
505+
const richMenuId = "test_rich_menu_id";
506+
const richMenuAliasId = "test_rich_menu_alias_id";
507+
const scope = mockPut(
508+
MESSAGING_API_PREFIX,
509+
"/richmenu/alias/test_rich_menu_alias_id",
510+
{ richMenuId },
511+
);
512+
513+
const res = await client.updateRichMenuAlias(richMenuAliasId, richMenuId);
514+
equal(scope.isDone(), true);
515+
deepEqual(res, {});
516+
});
517+
464518
it("getRichMenuIdOfUser", async () => {
465519
const scope = mockGet(MESSAGING_API_PREFIX, "/user/test_user_id/richmenu");
466520
await client.getRichMenuIdOfUser("test_user_id");

0 commit comments

Comments
 (0)