mirror of https://github.com/kern/filepizza
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
796 B
JavaScript
35 lines
796 B
JavaScript
var twilio = require('twilio')
|
|
var winston = require('winston')
|
|
|
|
if (process.env.TWILIO_SID && process.env.TWILIO_TOKEN) {
|
|
var client = twilio(process.env.TWILIO_SID, process.env.TWILIO_TOKEN)
|
|
} else {
|
|
var client = null
|
|
}
|
|
|
|
var CACHE_LIFETIME = 5 * 60 * 1000 // 5 minutes
|
|
var cachedPromise = null
|
|
|
|
function clearCache() {
|
|
cachedPromise = null
|
|
}
|
|
|
|
exports.getICEServers = function () {
|
|
if (client == null) return Promise.resolve({})
|
|
if (cachedPromise) return cachedPromise
|
|
|
|
cachedPromise = new Promise(function (resolve, reject) {
|
|
client.tokens.create({}, function(err, token) {
|
|
if (err) {
|
|
winston.error(err.message)
|
|
return resolve({})
|
|
}
|
|
|
|
setTimeout(clearCache, CACHE_LIFETIME)
|
|
resolve(token.ice_servers)
|
|
})
|
|
})
|
|
|
|
return cachedPromise
|
|
}
|