getToken.js 772 Bytes
require('dotenv').load()

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(promise =>
    //   Bacon.fromBinder(sink => promise.then(
    //     success=> sink([new Bacon.Next(success), new Bacon.End()]),
    //     error => error
    //   ))
    // )
    .flatMap(Bacon.fromPromise)
    .log()