diff --git a/lib/engage.js b/lib/engage.js index b5b8c02..1fc0a38 100644 --- a/lib/engage.js +++ b/lib/engage.js @@ -27,7 +27,7 @@ module.exports = function engage( options, register ) { } - function ensure_engage(seneca, token,error,handler) { + function ensure_engage(seneca,token,error,handler) { engage_ent.load$({token:token},function(err,engage){ if( err ) return error(err); if( engage ) { @@ -35,7 +35,7 @@ module.exports = function engage( options, register ) { return handler(engage); } create_engage(function(err,engage){ - seneca.log.debug('create',engage.token) + seneca.log.debug('create', function(){ return token ? ['not-found',token] : ['not-present']}) if( err ) return error(err); if( engage ) return handler(engage); }) @@ -71,6 +71,8 @@ module.exports = function engage( options, register ) { this.add({role:name,cmd:'set'},function(args,cb){ + //console.log('EGET req$.s.et:'+!!args.req$.seneca.engage_token) + var token = args.token || (args.context && args.context.engage_token) || (args.req$&&args.req$.seneca&&args.req$.seneca.engage_token) @@ -95,7 +97,6 @@ module.exports = function engage( options, register ) { } if( args.res$ ) { - console.log('settoken res$:'+!!args.res$) if( _.isFunction( args.res$.cookie ) ) { args.res$.cookie(options.tokenkey,token) } @@ -104,12 +105,18 @@ module.exports = function engage( options, register ) { } } + if( args.req$ && args.req$.seneca ) { + args.req$.seneca.engage_token = token + } + cb(null,token) } }) this.add({role:name,cmd:'get'},function(args,cb){ + //console.log('EGET req$.s.et:'+args.req$.seneca.engage_token) + var token = args.token || (args.context && args.context.engage_token) || (args.req$&&args.req$.seneca&&args.req$.seneca.engage_token) if( !token ) return cb(); @@ -131,6 +138,7 @@ module.exports = function engage( options, register ) { this, keys, function(key,next){ + //console.log('EWRAP GET '+key) this.act({role:name,cmd:'get',key:key,context:args.context,req$:args.req$,res$:args.res$},function(err,val){ if( err ) return done(err); @@ -139,6 +147,7 @@ module.exports = function engage( options, register ) { }) }, function(err,args){ + //console.log('EWRAP PARENT cart:'+args.cart) parent(args,function(err,out){ if( err ) return done(err); @@ -146,11 +155,13 @@ module.exports = function engage( options, register ) { this, keys, function(key,next){ - if( _.isUndefined(out[key]) ) { + if( _.isObject(out) && _.isUndefined(out[key]) ) { next() } else { - this.act({role:name,cmd:'set',key:key,value:out[key], context:args.context,req$:args.req$,res$:args.res$},function(err,val){ + //console.log('EWRAP SET '+key) + var value = _.isObject(out) ? out[key] : null + this.act({role:name,cmd:'set',key:key,value:value, context:args.context,req$:args.req$,res$:args.res$},function(err,val){ if( err ) return done(err); next() })