Skip to content

Commit d64efa4

Browse files
Support Messaging API update for June 2020 (#228)
* fix #227
1 parent 98900a0 commit d64efa4

File tree

4 files changed

+115
-0
lines changed

4 files changed

+115
-0
lines changed

docs/api-reference/client.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,14 @@ class Client {
3333
getProfile(userId: string): Promise<Profile>
3434

3535
// Group
36+
getGroupSummary(groupId: string): Promise<GroupSummary>
37+
getGroupMembersCount(groupId: string): Promise<MemberCountResponse>
3638
getGroupMemberProfile(groupId: string, userId: string): Promise<Profile>
3739
getGroupMemberIds(groupId: string): Promise<string[]>
3840
leaveGroup(groupId: string): Promise<any>
3941

4042
// Room
43+
getRoomMembersCount(roomId: string): Promise<MemberCountResponse>
4144
getRoomMemberProfile(roomId: string, userId: string): Promise<Profile>
4245
getRoomMemberIds(roomId: string): Promise<string[]>
4346
leaveRoom(roomId: string): Promise<any>
@@ -269,6 +272,29 @@ client.getProfile('user_id').then((profile) => {
269272
```
270273

271274
### Group
275+
#### `getGroupSummary(groupId: string): Promise<GroupSummary>`
276+
277+
It corresponds to the [Group Summary](https://developers.line.biz/en/reference/messaging-api/#get-group-summary) API.
278+
279+
The argument is a group ID.
280+
281+
``` js
282+
client.getGroupSummary('group_id').then((summary) => {
283+
console.log(summary)
284+
})
285+
```
286+
287+
#### `getGroupMembersCount(groupId: string): Promise<MemberCountResponse>`
288+
289+
It corresponds to the [Group Members Count](https://developers.line.biz/en/reference/messaging-api/#get-members-group-count) API.
290+
291+
The argument is a group ID.
292+
293+
``` js
294+
client.getGroupMembersCount('group_id').then((count) => {
295+
console.log(count)
296+
})
297+
```
272298

273299
#### `getGroupMemberProfile(groupId: string, userId: string): Promise<Profile>`
274300

@@ -308,6 +334,17 @@ client.leaveGroup('group_id')
308334
```
309335

310336
### Room
337+
#### `getRoomMembersCount(roomId: string): Promise<MembersCountResponse>`
338+
339+
It corresponds to the [Room Members Count](https://developers.line.biz/en/reference/messaging-api/#get-members-room-count) API.
340+
341+
The argument is a room ID.
342+
343+
``` js
344+
client.getRoomMembersCount('room_id').then((count) => {
345+
console.log(count)
346+
})
347+
```
311348

312349
#### `getRoomMemberProfile(roomId: string, userId: string): Promise<Profile>`
313350

lib/client.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,33 @@ export default class Client {
200200
return this.getChatMemberIds("room", roomId);
201201
}
202202

203+
public async getGroupMembersCount(
204+
groupId: string,
205+
): Promise<Types.MembersCountResponse> {
206+
const groupMemberCount = await this.http.get<Types.MembersCountResponse>(
207+
`${MESSAGING_API_PREFIX}/group/${groupId}/members/count`,
208+
);
209+
return ensureJSON(groupMemberCount);
210+
}
211+
212+
public async getRoomMembersCount(
213+
roomId: string,
214+
): Promise<Types.MembersCountResponse> {
215+
const roomMemberCount = await this.http.get<Types.MembersCountResponse>(
216+
`${MESSAGING_API_PREFIX}/room/${roomId}/members/count`,
217+
);
218+
return ensureJSON(roomMemberCount);
219+
}
220+
221+
public async getGroupSummary(
222+
groupId: string,
223+
): Promise<Types.GroupSummaryResponse> {
224+
const groupSummary = await this.http.get<Types.GroupSummaryResponse>(
225+
`${MESSAGING_API_PREFIX}/group/${groupId}/summary`,
226+
);
227+
return ensureJSON(groupSummary);
228+
}
229+
203230
public async getMessageContent(messageId: string): Promise<Readable> {
204231
return this.http.getStream(
205232
`${DATA_API_PREFIX}/message/${messageId}/content`,

lib/types.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2425,3 +2425,24 @@ export type AudienceGroup = _AudienceGroup & {
24252425
export type AudienceGroups = _AudienceGroup[];
24262426

24272427
export type AudienceGroupAuthorityLevel = "PUBLIC" | "PRIVATE";
2428+
2429+
/**
2430+
* Response body of get group summary.
2431+
*
2432+
* @see [Get group summary](https://developers.line.biz/ja/reference/messaging-api/#get-group-summary)
2433+
*/
2434+
export type GroupSummaryResponse = {
2435+
groupId: string;
2436+
groupName: string;
2437+
pictureUrl: string;
2438+
};
2439+
2440+
/**
2441+
* Response body of get members in group count and get members in room count.
2442+
*
2443+
* @see [Get members in group count](https://developers.line.biz/en/reference/messaging-api/#get-members-group-count)
2444+
* @see [Get members in room count](https://developers.line.biz/en/reference/messaging-api/#get-members-room-count)
2445+
*/
2446+
export type MembersCountResponse = {
2447+
count: number;
2448+
};

test/client.spec.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,36 @@ describe("client", () => {
361361
]);
362362
});
363363

364+
it("getGroupMembersCount", async () => {
365+
const groupId = "groupId";
366+
const scope = mockGet(
367+
MESSAGING_API_PREFIX,
368+
`/group/${groupId}/members/count`,
369+
);
370+
371+
await client.getGroupMembersCount(groupId);
372+
equal(scope.isDone(), true);
373+
});
374+
375+
it("getRoomMembersCount", async () => {
376+
const roomId = "roomId";
377+
const scope = mockGet(
378+
MESSAGING_API_PREFIX,
379+
`/room/${roomId}/members/count`,
380+
);
381+
382+
await client.getRoomMembersCount(roomId);
383+
equal(scope.isDone(), true);
384+
});
385+
386+
it("getGroupSummary", async () => {
387+
const groupId = "groupId";
388+
const scope = mockGet(MESSAGING_API_PREFIX, `/group/${groupId}/summary`);
389+
390+
await client.getGroupSummary(groupId);
391+
equal(scope.isDone(), true);
392+
});
393+
364394
it("getMessageContent", async () => {
365395
const scope = mockGet(DATA_API_PREFIX, "/message/test_message_id/content");
366396

0 commit comments

Comments
 (0)