From fa89c4dee82c24c6e78401fce5850d58181ba2fc Mon Sep 17 00:00:00 2001 From: Chris Clark Date: Wed, 8 Jul 2015 14:32:21 -0700 Subject: [PATCH] Add ledgerVersion option to getSettings --- src/api/ledger/settings.js | 30 ++++++++++++++++++------------ test/api-test.js | 2 +- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/api/ledger/settings.js b/src/api/ledger/settings.js index aa6a3b1e..c75677e7 100644 --- a/src/api/ledger/settings.js +++ b/src/api/ledger/settings.js @@ -4,6 +4,7 @@ const utils = require('./utils'); const flags = utils.common.core.Remote.flags.account_root; const validate = utils.common.validate; const parseFields = require('./parse/fields'); +const composeAsync = utils.common.composeAsync; const AccountFlags = { passwordSpent: flags.PasswordSpent, @@ -26,19 +27,24 @@ function parseFlags(value) { return settings; } -function getSettings(account, callback) { - validate.address(account); +function formatSettings(response) { + const data = response.account_data; + const parsedFlags = parseFlags(data.Flags); + const parsedFields = parseFields(data); + return _.assign({}, parsedFlags, parsedFields); +} - this.remote.requestAccountInfo({account: account}, function(error, info) { - if (error) { - return callback(error); - } - const data = info.account_data; - const parsedFlags = parseFlags(data.Flags); - const parsedFields = parseFields(data); - const settings = _.assign({}, parsedFlags, parsedFields); - callback(null, settings); - }); +function getSettings(account, options, callback) { + validate.address(account); + validate.options(options); + + const request = { + account: account, + ledger: options.ledgerVersion + }; + + this.remote.requestAccountInfo(request, + composeAsync(formatSettings, callback)); } module.exports = utils.wrapCatch(getSettings); diff --git a/test/api-test.js b/test/api-test.js index cb0a47ea..bde6436d 100644 --- a/test/api-test.js +++ b/test/api-test.js @@ -133,7 +133,7 @@ describe('RippleAPI', function() { }); it('getSettings', function(done) { - this.api.getSettings(address, + this.api.getSettings(address, {}, _.partial(checkResult, getSettingsResponse, done)); });