guidesmiths/request-token

View on GitHub
index.js

Summary

Maintainability
A
0 mins
Test Coverage
var debug = require('debug')('request-token')
var async = require('async')
var _ = require('lodash')
var pillager = require('./lib/pillager')
var decorator = require('./lib/decorator')
var renderer = require('./lib/renderer')

module.exports = function(config) {

    config = config || {}
    var pillage = _.curry(pillager(config).pillage)
    var decorate = decorator(config).decorate
    var render = renderer(config).render

    function generate(req, next) {
        debug('Generating request token for request: %s', req.url)
        async.waterfall([
            pillage(req),
            decorate,
            render
        ], function(err, token) {
            if (err) return next(err)
            debug('Generated token: %s from request: %s', token, req.url)
            return next(null, token)
        })
    }

    return {
        generate: generate
    }
}