Skip to content

Commit 040867e

Browse files
Shoya ShirakiHyunje Jun
authored andcommitted
Implement default rich menu (#87)
* add default rich menu endpoint url * add test * add default rich menu clients * format code * fix response type * fix getDefaultRichMenuId response type
1 parent 98ca064 commit 040867e

File tree

3 files changed

+46
-0
lines changed

3 files changed

+46
-0
lines changed

lib/client.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,20 @@ export default class Client {
165165
.then(res => res.richmenus);
166166
}
167167

168+
public setDefaultRichMenu(richMenuId: string): Promise<{}> {
169+
return this.post(URL.defaultRichMenu(richMenuId));
170+
}
171+
172+
public getDefaultRichMenuId(): Promise<string> {
173+
return this.get(URL.defaultRichMenu())
174+
.then(checkJSON)
175+
.then(res => res.richMenuId);
176+
}
177+
178+
public deleteDefaultRichMenu(): Promise<{}> {
179+
return this.delete(URL.defaultRichMenu());
180+
}
181+
168182
private authHeader(): { [key: string]: string } {
169183
return { Authorization: "Bearer " + this.config.channelAccessToken };
170184
}

lib/urls.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,6 @@ export const userRichMenu = (userId: string, richMenuId?: string) =>
4343

4444
export const richMenuContent = (richMenuId: string) =>
4545
apiURL(`richmenu/${richMenuId}/content`);
46+
47+
export const defaultRichMenu = (richMenuId?: string) =>
48+
apiURL("user/all/richmenu" + (richMenuId ? `/${richMenuId}` : ""));

test/client.spec.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,4 +294,33 @@ describe("client", () => {
294294
equal(req.method, "GET");
295295
});
296296
});
297+
298+
it("setDefaultRichMenu", () => {
299+
return client.setDefaultRichMenu("test_rich_menu_id").then((res: any) => {
300+
const req = getRecentReq();
301+
equal(req.headers.authorization, "Bearer test_channel_access_token");
302+
equal(req.path, "/user/all/richmenu/test_rich_menu_id");
303+
equal(req.method, "POST");
304+
deepEqual(res, {});
305+
});
306+
});
307+
308+
it("getDefaultRichMenuId", () => {
309+
return client.getDefaultRichMenuId().then(() => {
310+
const req = getRecentReq();
311+
equal(req.headers.authorization, "Bearer test_channel_access_token");
312+
equal(req.path, "/user/all/richmenu");
313+
equal(req.method, "GET");
314+
});
315+
});
316+
317+
it("deleteDefaultRichMenu", () => {
318+
return client.deleteDefaultRichMenu().then((res: any) => {
319+
const req = getRecentReq();
320+
equal(req.headers.authorization, "Bearer test_channel_access_token");
321+
equal(req.path, "/user/all/richmenu");
322+
equal(req.method, "DELETE");
323+
deepEqual(res, {});
324+
});
325+
});
297326
});

0 commit comments

Comments
 (0)