UNPKG

1.05 kBJavaScriptView Raw
1var check = require('check-types');
2var verify = check.verify;
3var crypto = require('crypto');
4
5module.exports = function (installable, capabilities) {
6 check.map(installable, {
7 oauthId: verify.string,
8 oauthSecret: verify.string,
9 groupId: verify.number,
10 roomId: verify.maybe.number
11 });
12
13 check.map(capabilities, {
14 links: {
15 self: verify.webUrl,
16 api: verify.webUrl,
17 homepage: verify.webUrl
18 },
19 capabilities: {
20 oauth2Provider: {
21 tokenUrl: verify.webUrl
22 }
23 }
24 });
25
26 var webhookToken = crypto.createHash('sha1')
27 .update(installable.oauthId)
28 .update(installable.oauthSecret)
29 .digest('hex');
30
31 return {
32 id: installable.oauthId,
33 secret: installable.oauthSecret,
34 group: installable.groupId,
35 room: installable.roomId,
36 webhookToken: webhookToken,
37 links: {
38 capabilities: capabilities.links.self,
39 base: capabilities.links.homepage,
40 api: capabilities.links.api,
41 token: capabilities.capabilities.oauth2Provider.tokenUrl
42 }
43 };
44};