1
|
|
|
require('dotenv').config(); |
2
|
|
|
var express = require('express'); |
3
|
|
|
var path = require('path'); |
4
|
|
|
var cons = require('consolidate'); |
5
|
|
|
|
6
|
|
|
var port = 8080; |
7
|
|
|
var app = module.exports = express(); |
8
|
|
|
var swig = require('swig'); |
9
|
|
|
|
10
|
|
|
// handlebars initiation |
11
|
|
|
var exphbs = require('express-handlebars'); |
12
|
|
|
var hbs = exphbs.create({}); |
13
|
|
|
|
14
|
|
|
// Configure View and Handlebars |
15
|
|
|
app.use(express.static(path.join(__dirname))); |
16
|
|
|
app.engine('handlebars', hbs.engine); |
17
|
|
|
app.set('views', path.join(__dirname, 'views')); |
18
|
|
|
app.set('view engine', 'handlebars'); |
19
|
|
|
|
20
|
|
|
|
21
|
|
|
|
22
|
|
|
// Create body parsers for application/json and application/x-www-form-urlencoded |
23
|
|
|
var bodyParser = require('body-parser') |
24
|
|
|
app.use(bodyParser.json()) |
25
|
|
|
var urlencodedParser = bodyParser.urlencoded({ extended: false }) |
26
|
|
|
|
27
|
|
|
if(!module.parent){ app.listen(process.env.PORT || port); } |
28
|
|
|
|
29
|
|
|
console.log("Application started. Listening on port:" + port); |
|
|
|
|
30
|
|
|
|
31
|
|
|
|
32
|
|
|
var ringcentral = require('ringcentral'); |
33
|
|
|
|
34
|
|
|
var rcsdk = new ringcentral({ |
|
|
|
|
35
|
|
|
server: process.env.GLIP_APP_SERVER_URL, |
36
|
|
|
appKey: process.env.GLIP_APP_KEY, |
37
|
|
|
appSecret: process.env.GLIP_APP_SECRET |
38
|
|
|
}); |
39
|
|
|
|
40
|
|
|
var groupMembers; |
41
|
|
|
var userList = []; |
42
|
|
|
|
43
|
|
|
// Route for the home page |
44
|
|
|
app.get('/inviteDemo', function (req, res) { |
45
|
|
|
var badge = swig.renderFile(path.join(__dirname, '/views/badge.svg')); |
46
|
|
|
res.writeHead(200, {"Content-Type": "image/svg+xml"}) |
47
|
|
|
res.write(badge); |
48
|
|
|
res.send(); |
49
|
|
|
}); |
50
|
|
|
// Route for the inviteDemo |
51
|
|
|
app.get('/', function (req, res) { |
52
|
|
|
|
53
|
|
|
console.log('Insdei'); |
|
|
|
|
54
|
|
|
rcsdk.platform() |
55
|
|
|
.login({ |
56
|
|
|
username: process.env.GLIP_USERNAME, |
57
|
|
|
extension: process.env.GLIP_EXTENSION || null, |
58
|
|
|
password: process.env.GLIP_PASSWORD |
59
|
|
|
}) |
60
|
|
|
.then(function(response) { |
|
|
|
|
61
|
|
|
console.log('Logged in to platform'); |
|
|
|
|
62
|
|
|
return rcsdk.platform() |
63
|
|
|
.get('/glip/groups/' + process.env.GLIP_GROUP_ID) |
64
|
|
|
.then(function(apiResponse) { |
65
|
|
|
var response = apiResponse.json(); |
66
|
|
|
if(response.members){ |
67
|
|
|
groupMembers = response.members.length; |
68
|
|
|
console.log(groupMembers); |
|
|
|
|
69
|
|
|
} |
70
|
|
|
res.render('index', {RC_Logo: process.env.GLIP_LOGO, RC_Community: process.env.GLIP_GROUP_NAME, RC_Total_members: groupMembers, RC_groupId: process.env.GLIP_GROUP_ID}); |
|
|
|
|
71
|
|
|
}) |
72
|
|
|
.catch(function(e) { |
73
|
|
|
console.log('INVITE USER DID NOT WORK'); |
|
|
|
|
74
|
|
|
console.log(e); |
75
|
|
|
}); |
76
|
|
|
}) |
77
|
|
|
.catch(function(e) { |
78
|
|
|
console.log('ERR_CALLBACK ' + e.message || 'Server cannot authorize user'); |
|
|
|
|
79
|
|
|
res.send('Error'); |
80
|
|
|
}); |
81
|
|
|
}); |
82
|
|
|
|
83
|
|
|
// Route for the invite user |
84
|
|
|
app.post('/inviteUser', urlencodedParser, function (req, res, next) { |
|
|
|
|
85
|
|
|
var userInvite = [ req.body.userInvite || '' ]; |
86
|
|
|
userList.push(userInvite); |
87
|
|
|
rcsdk.platform().loggedIn() |
88
|
|
|
.then(function(status) { |
|
|
|
|
89
|
|
|
return rcsdk.platform() |
90
|
|
|
.post('/glip/groups/' + process.env.GLIP_GROUP_ID + '/bulk-assign',{ |
91
|
|
|
"addedPersonEmails": userInvite |
92
|
|
|
}) |
93
|
|
|
.then(function(response) { |
94
|
|
|
console.log('The response is :', response.json()); |
|
|
|
|
95
|
|
|
console.log('The total number of users invited to the grpup is :'+ userList.length); |
96
|
|
|
console.log('The total number of users registered in the grpup is :'+response.json().members.length); |
97
|
|
|
console.log("The type of data is :" + typeof userList.length); |
98
|
|
|
res.send(userList.length.toString()); |
99
|
|
|
}) |
100
|
|
|
.catch(function(e) { |
101
|
|
|
console.log('INVITE USER DID NOT WORK'); |
|
|
|
|
102
|
|
|
console.log(e); |
103
|
|
|
}); |
104
|
|
|
}) |
105
|
|
|
.catch(function(e) { |
|
|
|
|
106
|
|
|
res.send("E_NOT_LOGGED_IN"); |
107
|
|
|
}); |
108
|
|
|
}); |
109
|
|
|
|
110
|
|
|
|
111
|
|
|
module.exports = { |
112
|
|
|
app : app |
113
|
|
|
}; |
114
|
|
|
|