[NEW] REST endpoint to set groups' announcement (#11905)

pull/11169/head
Marcos Spessatto Defendi 7 years ago committed by Diego Sampaio
parent 112f54e5f8
commit 4470ec68f6
  1. 18
      packages/rocketchat-api/server/v1/groups.js
  2. 16
      tests/end-to-end/api/03-groups.js

@ -729,6 +729,24 @@ RocketChat.API.v1.addRoute('groups.setType', { authRequired: true }, {
},
});
RocketChat.API.v1.addRoute('groups.setAnnouncement', { authRequired: true }, {
post() {
if (!this.bodyParams.announcement || !this.bodyParams.announcement.trim()) {
return RocketChat.API.v1.failure('The bodyParam "announcement" is required');
}
const findResult = findPrivateGroupByIdOrName({ params: this.requestParams(), userId: this.userId });
Meteor.runAsUser(this.userId, () => {
Meteor.call('saveRoomSettings', findResult.rid, 'roomAnnouncement', this.bodyParams.announcement);
});
return RocketChat.API.v1.success({
announcement: this.bodyParams.announcement,
});
},
});
RocketChat.API.v1.addRoute('groups.unarchive', { authRequired: true }, {
post() {
const findResult = findPrivateGroupByIdOrName({ params: this.requestParams(), userId: this.userId, checkedArchived: false });

@ -430,6 +430,22 @@ describe('[Groups]', function() {
.end(done);
});
it('/groups.setAnnouncement', (done) => {
request.post(api('groups.setAnnouncement'))
.set(credentials)
.send({
roomId: group._id,
announcement: 'this is an announcement of a group for api tests',
})
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
expect(res.body).to.have.property('success', true);
expect(res.body).to.have.nested.property('announcement', 'this is an announcement of a group for api tests');
})
.end(done);
});
it('/groups.setType', (done) => {
request.post(api('groups.setType'))
.set(credentials)

Loading…
Cancel
Save