Skip to content

Commit 7a28567

Browse files
Anupam-dagaraero31aero
authored andcommitted
api: Add support for GET /realm/filters.
1 parent 696758c commit 7a28567

File tree

5 files changed

+58
-0
lines changed

5 files changed

+58
-0
lines changed

Diff for: README.md

+1
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ zulip.callEndpoint('/messages', 'POST', params);
125125
| `zulip.users.me.subscriptions.remove()` | DELETE `/users/me/subscriptions` | remove subscriptions. |
126126
| `zulip.users.me.pointer.update()` | POST `users/me/pointer` | updates the pointer for the user, for moving the home view. Accepts a message id. This has the side effect of marking some messages as read. Will not return success if the message id is invalid. Will always succeed if the id is less than the current value of the pointer (the id of the last message read). |
127127
| `zulip.server.settings()` | GET `/server_settings` | returns a dictionary of server settings. |
128+
| `zulip.filters.retrieve()` | GET `realm/filters` | return a list of filters in a realm |
128129

129130
# Testing
130131

Diff for: examples/filters.js

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
const zulip = require('../lib/');
2+
3+
const config = {
4+
username: process.env.ZULIP_USERNAME,
5+
apiKey: process.env.ZULIP_API_KEY,
6+
realm: process.env.ZULIP_REALM,
7+
};
8+
9+
zulip(config).then((z) => {
10+
z.filters.retrieve().then(console.log);
11+
}).catch(err => console.log(err.message));

Diff for: src/index.js

+2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ const emojis = require('./resources/emojis');
1212
const typing = require('./resources/typing');
1313
const reactions = require('./resources/reactions');
1414
const server = require('./resources/server');
15+
const filters = require('./resources/filters');
1516

1617
function getCallEndpoint(config) {
1718
return function callEndpoint(endpoint, method = 'GET', params) {
@@ -40,6 +41,7 @@ function resources(config) {
4041
typing: typing(config),
4142
reactions: reactions(config),
4243
server: server(config),
44+
filters: filters(config),
4345
};
4446
}
4547

Diff for: src/resources/filters.js

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
const api = require('../api');
2+
3+
function filters(config) {
4+
return {
5+
retrieve: (params) => {
6+
const url = `${config.apiURL}/realm/filters`;
7+
return api(url, config, 'GET', params);
8+
},
9+
};
10+
}
11+
12+
module.exports = filters;

Diff for: test/resources/filters.js

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
const filters = require('../../lib/resources/filters');
2+
const common = require('../common');
3+
const chai = require('chai');
4+
chai.use(require('chai-as-promised'));
5+
6+
chai.should();
7+
8+
describe('Filters', () => {
9+
it('should fetch realm filters', (done) => {
10+
const validator = (url, options) => {
11+
url.should.equal(`${common.config.apiURL}/realm/filters`);
12+
options.should.not.have.property('body');
13+
options.method.should.be.equal('GET');
14+
};
15+
const output = {
16+
filters: [
17+
['#(?P<id>[0-9]{2,8})',
18+
'https://github.com/zulip/zulip/pull/%(id)s',
19+
1],
20+
],
21+
msg: '',
22+
result: 'success',
23+
};
24+
const stubs = common.getStubs(validator, output);
25+
filters(common.config).retrieve()
26+
.then((data) => {
27+
data.should.have.property('result', 'success');
28+
common.restoreStubs(stubs);
29+
done();
30+
}).catch(done);
31+
});
32+
});

0 commit comments

Comments
 (0)