spark-oauth-sample
Version:
This is a Spark OAuth Sample. It contains a) web interface of requesting token, b) a token management center.
77 lines (71 loc) • 2.77 kB
JavaScript
var https = require('https');
module.exports = function (token, roomName, requesterEmail, sessionID, writeLog, callback) {
writeLog(sessionID, 'debug', 'Start creating a new roow now. room name:' + roomName);
var postRoomData = JSON.stringify({
'title': roomName
});
var roomOptions = {
host: 'api.ciscospark.com',
path: '/v1/rooms',
method: 'post',
headers: {
'Content-type': 'application/json',
'Authorization': 'Bearer ' + token.access_token
}
};
// Sending POST to SPARK API to create room, and get the room ID back.
var roomRequest = https.request(roomOptions, function (response) {
var data = '';
response.setEncoding('utf8');
response.on('data', function (chunk) {
data += chunk;
});
response.on('end', function () {
if (JSON.parse(data).id) {
var newRoomID = JSON.parse(data).id;
require('./getUserEmail.js')(token.access_token,
sessionID,
writeLog,
function (error, email) {
if (!error) {
if (email === requesterEmail) {
writeLog(sessionID, 'fatal', 'User email can not be the same as the requester email.');
callback('User email can not be the same as the requester email.', null);
} else {
writeLog(sessionID, 'debug', 'New room has been created. Start adding the requester into the new room. Room ID: ' + newRoomID);
require('./addMember.js')(token,
newRoomID,
requesterEmail,
sessionID,
writeLog,
function (err, membershipID, messageID) {
if (!err) {
callback(null, {
newRoomID: newRoomID,
membershipID: membershipID,
messageID: messageID
});
} else {
callback(err, null);
}
});
}
} else {
writeLog(sessionID, 'fatal', error);
callback(error, null);
}
});
} else {
writeLog(sessionID, 'fatal', 'Got proper JSON from Spark API, however it is failed to create room: ' + data + '. Please copy/paste the Token info and send to requester directly in Spark.');
callback('Got proper JSON from Spark API, however it is failed to create room: ' + data + '. Please copy/paste the Token info and send to requester directly in Spark.', null);
}
});
});
roomRequest.on('error', function (err) {
writeLog(sessionID, 'fatal', 'Got error from Spark API. Failed to create room: ' + err.message + '. Please copy/paste the Token info and send to requester directly in Spark');
callback('Got error from Spark API. Failed to create room: ' + err.message + '. Please copy/paste the Token info and send to requester directly in Spark', null);
});
// write data to room request body
roomRequest.write(postRoomData);
roomRequest.end();
};