diff --git a/src/api/common/schemas/get-balance-sheet.json b/src/api/common/schemas/get-balance-sheet.json index 5e3a9a21..f8b3e934 100644 --- a/src/api/common/schemas/get-balance-sheet.json +++ b/src/api/common/schemas/get-balance-sheet.json @@ -8,22 +8,12 @@ "type": "array", "items": { "type": "object", - "required": ["counterparty", "balances"], + "required": ["counterparty", "currency", "value"], "additionalProperties": false, "properties": { "counterparty": {"$ref": "address"}, - "balances": { - "type": "array", - "items": { - "type": "object", - "required": ["currency", "value"], - "additionalProperties": false, - "properties": { - "currency": {"$ref": "currency"}, - "value": {"$ref": "value"} - } - } - } + "currency": {"$ref": "currency"}, + "value": {"$ref": "value"} } } }, @@ -31,22 +21,12 @@ "type": "array", "items": { "type": "object", - "required": ["counterparty", "assets"], + "required": ["counterparty", "currency", "value"], "additionalProperties": false, "properties": { "counterparty": {"$ref": "address"}, - "assets": { - "type": "array", - "items": { - "type": "object", - "required": ["currency", "value"], - "additionalProperties": false, - "properties": { - "currency": {"$ref": "currency"}, - "value": {"$ref": "value"} - } - } - } + "currency": {"$ref": "currency"}, + "value": {"$ref": "value"} } } }, diff --git a/src/api/ledger/balance-sheet.js b/src/api/ledger/balance-sheet.js index 54d75176..608ae508 100644 --- a/src/api/ledger/balance-sheet.js +++ b/src/api/ledger/balance-sheet.js @@ -10,12 +10,20 @@ function formatBalanceSheet(balanceSheet) { const result = {}; if (!_.isUndefined(balanceSheet.balances)) { - result.balances = _.map(balanceSheet.balances, (balances, counterparty) => - ({counterparty, balances})); + result.balances = []; + _.forEach(balanceSheet.balances, (balances, counterparty) => { + _.forEach(balances, (balance) => { + result.balances.push(Object.assign({counterparty}, balance)); + }); + }); } if (!_.isUndefined(balanceSheet.assets)) { - result.assets = _.map(balanceSheet.assets, (assets, counterparty) => - ({counterparty, assets})); + result.assets = []; + _.forEach(balanceSheet.assets, (assets, counterparty) => { + _.forEach(assets, (balance) => { + result.assets.push(Object.assign({counterparty}, balance)); + }); + }); } if (!_.isUndefined(balanceSheet.obligations)) { result.obligations = _.map(balanceSheet.obligations, (value, currency) => diff --git a/test/fixtures/api/responses/get-balance-sheet.json b/test/fixtures/api/responses/get-balance-sheet.json index d5d8473c..650f07c3 100644 --- a/test/fixtures/api/responses/get-balance-sheet.json +++ b/test/fixtures/api/responses/get-balance-sheet.json @@ -1,51 +1,37 @@ { "balances": [ { - "counterparty": "rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ", - "balances": [ - { - "currency": "EUR", - "value": "29826.1965999999" - }, - { - "currency": "USD", - "value": "10.0" - } - ] - }, - { - "counterparty": "ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt", - "balances": [ - { - "currency": "USD", - "value": "13857.70416" - } - ] - } + "counterparty": "rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ", + "currency": "EUR", + "value": "29826.1965999999" + }, + { + "counterparty": "rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ", + "currency": "USD", + "value": "10.0" + }, + { + "counterparty": "ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt", + "currency": "USD", + "value": "13857.70416" + } ], "assets": [ { - "counterparty": "r9F6wk8HkXrgYWoJ7fsv4VrUBVoqDVtzkH", - "assets": [ - { - "currency": "BTC", - "value": "5444166510000000e-26" - }, - { - "currency": "USD", - "value": "100.0" - } - ] - }, - { - "counterparty": "rwmUaXsWtXU4Z843xSYwgt1is97bgY8yj6", - "assets": [ - { - "currency": "BTC", - "value": "8700000000000000e-30" - } - ] - } + "counterparty": "r9F6wk8HkXrgYWoJ7fsv4VrUBVoqDVtzkH", + "currency": "BTC", + "value": "5444166510000000e-26" + }, + { + "counterparty": "r9F6wk8HkXrgYWoJ7fsv4VrUBVoqDVtzkH", + "currency": "USD", + "value": "100.0" + }, + { + "counterparty": "rwmUaXsWtXU4Z843xSYwgt1is97bgY8yj6", + "currency": "BTC", + "value": "8700000000000000e-30" + } ], "obligations": [ {