Skip to content

Commit 279a47d

Browse files
zulip#6 - Added support for get_auth_backends, dev_get_emails and dev_fetch_api_key. Fixing indentations.
1 parent 47a0a0f commit 279a47d

File tree

10 files changed

+119
-0
lines changed

10 files changed

+119
-0
lines changed

examples/accounts.js

+7
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,10 @@ zulip({
66
realm: process.env.ZULIP_REALM,
77
}).then(z => z.accounts.retrieve())
88
.then(console.log);
9+
10+
zulip({
11+
username: process.env.ZULIP_USERNAME,
12+
password: process.env.ZULIP_PASSWORD,
13+
realm: process.env.ZULIP_REALM,
14+
}).then(z => z.accounts.dev.retrieve())
15+
.then(console.log);

examples/auth.js

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
const zulip = require('../lib/');
2+
3+
const config = {
4+
username: process.env.ZULIP_USERNAME,
5+
password: process.env.ZULIP_PASSWORD,
6+
realm: process.env.ZULIP_REALM,
7+
};
8+
9+
zulip(config)
10+
.then((z) => {
11+
// [ 'password', 'dev' ]
12+
z.auth.backends.retrieve().then(console.log);
13+
})
14+
.catch(err => console.log(err.msg));

examples/emails.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+
password: process.env.ZULIP_PASSWORD,
6+
realm: process.env.ZULIP_REALM,
7+
};
8+
9+
zulip(config).then((z) => {
10+
z.emails.dev.retrieve().then(console.log);
11+
}).catch(err => console.log(err.msg));

examples/users.js

+6
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,11 @@ zulip(config)
2525
// Prints
2626
// { msg: '', pointer: 3432741029383298, result: 'success' }
2727
z.users.me.pointer.retrieve().then(console.log);
28+
29+
const presenceParams = {
30+
status: 'active',
31+
new_user_input: true
32+
};
33+
z.users.me.presence.retrieve(presenceParams).then(console.log).catch(console.log);
2834
})
2935
.catch(err => console.log(err.msg));

src/index.js

+4
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ const events = require('./resources/events');
88
const users = require('./resources/users');
99
const emojis = require('./resources/emojis');
1010
const typing = require('./resources/typing');
11+
const auth = require('./resources/auth');
12+
const emails = require('./resources/emails');
1113

1214
function resources(config) {
1315
return {
@@ -20,6 +22,8 @@ function resources(config) {
2022
users: users(config),
2123
emojis: emojis(config),
2224
typing: typing(config),
25+
auth: auth(config),
26+
emails: emails(config),
2327
};
2428
}
2529

src/resources/accounts.js

+11
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,17 @@ function accounts(config) {
1414
body: form,
1515
}).then(res => res.json());
1616
},
17+
dev: {
18+
retrieve: (params)=> {
19+
const url = `${config.apiURL}/dev_fetch_api_key`;
20+
const form = new FormData();
21+
form.append('username', config.username);
22+
return fetch(url, {
23+
method: 'POST',
24+
body: form,
25+
}).then(res => res.json());
26+
}
27+
}
1728
};
1829
}
1930

src/resources/auth.js

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
const api = require('../api');
2+
3+
function auth(config) {
4+
return {
5+
backends: {
6+
/**
7+
* Retrieves the auth backends available. Returns a promise which in turns will return an
8+
* array of available backend names
9+
* @param params
10+
* @returns {*}
11+
*/
12+
retrieve: (params) => {
13+
const url = `${config.apiURL}/get_auth_backends`;
14+
15+
return api(url, config, 'GET', params).then(res=> {
16+
const backends = [];
17+
18+
if (res.result === 'success') {
19+
if (res.password) backends.push('password');
20+
if (res.google) backends.push('google');
21+
if (res.dev) backends.push('dev');
22+
}
23+
24+
if (!backends) {
25+
throw new Error('No backends available.');
26+
}
27+
28+
return backends;
29+
});
30+
},
31+
},
32+
};
33+
}
34+
35+
module.exports = auth;

src/resources/emails.js

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

src/resources/messages.js

+7
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,13 @@ function messages(config) {
1414
const url = `${config.apiURL}/messages`;
1515
return api(url, config, 'POST', params);
1616
},
17+
// TODO : Improve and finalize
18+
flags: {
19+
retrieve: (params)=> {
20+
const url = `${config.apiURL}/messages/flags`;
21+
return api(url, config, 'POST', params);
22+
},
23+
},
1724
};
1825
}
1926

src/resources/users.js

+9
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,15 @@ function users(config) {
1313
return api(url, config, 'GET', params);
1414
},
1515
},
16+
presence: {
17+
retrieve: (params)=> {
18+
const url = `${config.apiURL}/users/me/presence`;
19+
return api(url, config, 'POST', params).then(res=> {
20+
console.log(res);
21+
return res;
22+
})
23+
},
24+
},
1625
},
1726
};
1827
}

0 commit comments

Comments
 (0)