diff --git a/lib/today/fitbit.js b/lib/today/fitbit.js index 6288812..d6cb32b 100644 --- a/lib/today/fitbit.js +++ b/lib/today/fitbit.js @@ -8,7 +8,7 @@ var logger = require('log4js').getLogger(); require('sugar-date'); var fitbit = new Fitbit(config.fitbit); -var tokenFile = '../../fb-token.json'; +var tokenFile = 'fb-token.json'; module.exports = { @@ -45,6 +45,7 @@ logger.info('Getting fitbit for: ', yesterday); } }; +/* jsonfile.readFile(tokenFile, function(err, obj) { if (err) { logger.error('Today Fitbit token failed to load'); @@ -58,3 +59,35 @@ jsonfile.readFile(tokenFile, function(err, obj) { } }); +*/ + +var persist = { + read: function( filename, cb ) { + fs.readFile( filename, { encoding: 'utf8', flag: 'r' }, function( err, data ) { + if ( err ) return cb( err ); + try { + var token = JSON.parse( data ); + cb( null, token ); + } catch( err ) { + cb( err ); + } + }); + }, + write: function( filename, token, cb ) { + console.log( 'persisting new token:', JSON.stringify( token ) ); + fs.writeFile( filename, JSON.stringify( token ), cb ); + } +}; + +persist.read(tokenFile, function(err, obj) { + if (err) { + logger.error('Today Fitbit token failed to load'); + logger.warn(err); + + } + else { + logger.info('Fitbit token loaded...'); + fitbit.setToken(obj); + + } +}); diff --git a/web-server.js b/web-server.js index d73461d..3146517 100644 --- a/web-server.js +++ b/web-server.js @@ -116,7 +116,27 @@ var tfile = 'fb-token.json'; // Instanciate a fitbit client. See example config below. // -var fitbit = new Fitbit( config.fitbit ); + +var persist = { + read: function( filename, cb ) { + fs.readFile( filename, { encoding: 'utf8', flag: 'r' }, function( err, data ) { + if ( err ) return cb( err ); + try { + var token = JSON.parse( data ); + cb( null, token ); + } catch( err ) { + cb( err ); + } + }); + }, + write: function( filename, token, cb ) { + console.log( 'persisting new token:', JSON.stringify( token ) ); + fs.writeFile( filename, JSON.stringify( token ), cb ); + } +}; + + +var fitbit = new Fitbit( config.fitbit, persist); // In a browser, http://localhost:4000/fitbit to authorize a user for the first time. //