Skip to content

Commit

Permalink
Add rest api endpoints to list members in a channel
Browse files Browse the repository at this point in the history
  • Loading branch information
graywolf336 committed Aug 17, 2017
1 parent 4f3c9d4 commit 25792e6
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 0 deletions.
22 changes: 22 additions & 0 deletions packages/rocketchat-api/server/v1/channels.js
Original file line number Diff line number Diff line change
Expand Up @@ -417,6 +417,28 @@ RocketChat.API.v1.addRoute('channels.list.joined', { authRequired: true }, {
}
});

RocketChat.API.v1.addRoute('channels.members', { authRequired: true }, {
get() {
const findResult = findChannelByIdOrName({ params: this.requestParams(), checkedArchived: false });

const { offset, count } = this.getPaginationItems();
const { sort } = this.parseJsonQuery();

const members = RocketChat.models.Rooms.processQueryOptionsOnResult(Array.from(findResult.usernames), {
sort: sort ? sort : -1,
skip: offset,
limit: count
});

return RocketChat.API.v1.success({
members,
count: members.length,
offset,
total: findResult.usernames.length
});
}
});

RocketChat.API.v1.addRoute('channels.messages', { authRequired: true }, {
get() {
const findResult = findChannelByIdOrName({ params: this.requestParams(), checkedArchived: false });
Expand Down
21 changes: 21 additions & 0 deletions packages/rocketchat-api/server/v1/groups.js
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,27 @@ RocketChat.API.v1.addRoute('groups.list', { authRequired: true }, {
}
});

RocketChat.API.v1.addRoute('groups.members', { authRequired: true }, {
get() {
const findResult = findPrivateGroupByIdOrName({ params: this.requestParams(), userId: this.userId });
const { offset, count } = this.getPaginationItems();
const { sort } = this.parseJsonQuery();

const members = RocketChat.models.Rooms.processQueryOptionsOnResult(Array.from(findResult._room.usernames), {
sort: sort ? sort : -1,
skip: offset,
limit: count
});

return RocketChat.API.v1.success({
members,
count: members.length,
offset,
total: findResult._room.usernames
});
}
});

RocketChat.API.v1.addRoute('groups.messages', { authRequired: true }, {
get() {
const findResult = findPrivateGroupByIdOrName({ params: this.requestParams(), userId: this.userId });
Expand Down
22 changes: 22 additions & 0 deletions packages/rocketchat-api/server/v1/im.js
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,28 @@ RocketChat.API.v1.addRoute(['dm.history', 'im.history'], { authRequired: true },
}
});

RocketChat.API.v1.addRoute(['dm.members', 'im.members'], { authRequired: true }, {
get() {
const findResult = findDirectMessageRoom(this.requestParams(), this.user);

const { offset, count } = this.getPaginationItems();
const { sort } = this.parseJsonQuery();

const members = RocketChat.models.Rooms.processQueryOptionsOnResult(Array.from(findResult.room.usernames), {
sort: sort ? sort : -1,
skip: offset,
limit: count
});

return RocketChat.API.v1.success({
members,
count: members.length,
offset,
total: findResult.room.usernames
});
}
});

RocketChat.API.v1.addRoute(['dm.messages', 'im.messages'], { authRequired: true }, {
get() {
const findResult = findDirectMessageRoom(this.requestParams(), this.user);
Expand Down

0 comments on commit 25792e6

Please sign in to comment.