getToken.js
661 Bytes
require('dotenv').load()
const logger = require('../logger')
const Bacon = require('baconjs')
const getToken = require('../lib/getToken')
/// authToken: String -> El token de autenticación de la senatics
// clientSecret: String -> El secreto del cliente
// interval: Number -> El periodo de renovación de los tokens
// Retorna un Stream que emite el nuevo token cada interval
module.exports = (authToken, clientSecret, interval) =>
Bacon.interval(interval, { clientSecret })
.merge(Bacon.once({ clientSecret }))
.map(payload => getToken(authToken, payload))
.flatMap(Bacon.fromPromise)
.doAction(logger.debug)
.doError(logger.warning)