diff --git a/src/api/common/schemas/options.json b/src/api/common/schemas/options.json deleted file mode 100644 index 1633d063..00000000 --- a/src/api/common/schemas/options.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "options", - "description": "Options for a ledger request", - "type": "object", - "properties": { - "currency": {"$ref": "currency"}, - "counterparty": {"$ref": "address"}, - "limit": { - "type": "integer", - "minimum": 1 - }, - "ledgerHash": { - "type": "string", - "format": "ledgerHash" - }, - "ledgerVersion": {"$ref": "ledgerVersion"}, - "minLedgerVersion": {"$ref": "ledgerVersion"}, - "maxLedgerVersion": {"$ref": "ledgerVersion"}, - "marker": { - "type": "string" - } - }, - "additionalProperties": false, - "dependencies": { - "marker": ["ledgerVersion"] - }, - "not": { - "description": "Fixed fee and max fee are mutually exclusive", - "required": ["fee", "maxFee"] - } -} diff --git a/src/api/common/schemas/orders-options.json b/src/api/common/schemas/orders-options.json new file mode 100644 index 00000000..d95045a0 --- /dev/null +++ b/src/api/common/schemas/orders-options.json @@ -0,0 +1,14 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "orders-options", + "description": "Options for getOrders and getOrderbook", + "type": "object", + "properties": { + "limit": { + "type": "integer", + "minimum": 1 + }, + "ledgerVersion": {"$ref": "ledgerVersion"} + }, + "additionalProperties": false +} diff --git a/src/api/common/schemas/settings-options.json b/src/api/common/schemas/settings-options.json new file mode 100644 index 00000000..96988cbc --- /dev/null +++ b/src/api/common/schemas/settings-options.json @@ -0,0 +1,10 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "settings-options", + "description": "Options for getSettings", + "type": "object", + "properties": { + "ledgerVersion": {"$ref": "ledgerVersion"} + }, + "additionalProperties": false +} diff --git a/src/api/common/schemas/transaction-options.json b/src/api/common/schemas/transaction-options.json new file mode 100644 index 00000000..c05c1ec4 --- /dev/null +++ b/src/api/common/schemas/transaction-options.json @@ -0,0 +1,11 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "transaction-options", + "description": "Options for getTransaction", + "type": "object", + "properties": { + "minLedgerVersion": {"$ref": "ledgerVersion"}, + "maxLedgerVersion": {"$ref": "ledgerVersion"} + }, + "additionalProperties": false +} diff --git a/src/api/common/schemas/acct-tx-options.json b/src/api/common/schemas/transactions-options.json similarity index 96% rename from src/api/common/schemas/acct-tx-options.json rename to src/api/common/schemas/transactions-options.json index 7a8b08c3..922c718c 100644 --- a/src/api/common/schemas/acct-tx-options.json +++ b/src/api/common/schemas/transactions-options.json @@ -1,6 +1,6 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "title": "acct-tx-options", + "title": "transactions-options", "description": "Options for getTransactions", "type": "object", "properties": { diff --git a/src/api/common/schemas/trustlines-options.json b/src/api/common/schemas/trustlines-options.json new file mode 100644 index 00000000..705f6169 --- /dev/null +++ b/src/api/common/schemas/trustlines-options.json @@ -0,0 +1,16 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "trustlines-options", + "description": "Options for getTrustlines and getBalances", + "type": "object", + "properties": { + "counterparty": {"$ref": "address"}, + "currency": {"$ref": "currency"}, + "limit": { + "type": "integer", + "minimum": 1 + }, + "ledgerVersion": {"$ref": "ledgerVersion"} + }, + "additionalProperties": false +} diff --git a/src/api/common/validate.js b/src/api/common/validate.js index 952eb8aa..9e9b44c0 100644 --- a/src/api/common/validate.js +++ b/src/api/common/validate.js @@ -52,7 +52,13 @@ module.exports = { trustline: _.partial(schemaValidate, 'trustline'), txJSON: _.partial(schemaValidate, 'tx'), blob: _.partial(schemaValidate, 'blob'), - getTransactionsOptions: _.partial(validateOptions, 'acct-tx-options'), + getTransactionsOptions: _.partial(validateOptions, 'transactions-options'), + getSettingsOptions: _.partial(validateOptions, 'settings-options'), + getTrustlinesOptions: _.partial(validateOptions, 'trustlines-options'), + getBalancesOptions: _.partial(validateOptions, 'trustlines-options'), + getOrdersOptions: _.partial(validateOptions, 'orders-options'), + getOrderbookOptions: _.partial(validateOptions, 'orders-options'), + getTransactionOptions: _.partial(validateOptions, 'transaction-options'), options: _.partial(validateOptions, 'options'), instructions: _.partial(schemaValidate, 'instructions') }; diff --git a/src/api/ledger/balances.js b/src/api/ledger/balances.js index 9fa651e7..6caf894b 100644 --- a/src/api/ledger/balances.js +++ b/src/api/ledger/balances.js @@ -25,7 +25,7 @@ function formatBalances(balances) { function getBalances(account, options, callback) { validate.address(account); - validate.options(options); + validate.getBalancesOptions(options); const ledgerVersion = options.ledgerVersion || this.remote.getLedgerSequence(); diff --git a/src/api/ledger/orderbook.js b/src/api/ledger/orderbook.js index f94f46a4..d951728b 100644 --- a/src/api/ledger/orderbook.js +++ b/src/api/ledger/orderbook.js @@ -52,7 +52,7 @@ function formatBidsAndAsks(orderbook, offers) { function getOrderbook(account, orderbook, options, callback) { validate.address(account); validate.orderbook(orderbook); - validate.options(options); + validate.getOrderbookOptions(options); const getter = _.partial(getBookOffers, this.remote, account, options.ledgerVersion, options.limit); diff --git a/src/api/ledger/orders.js b/src/api/ledger/orders.js index fe3d4b27..9f5893da 100644 --- a/src/api/ledger/orders.js +++ b/src/api/ledger/orders.js @@ -19,9 +19,9 @@ function requestAccountOffers(remote, address, ledgerVersion, options, }), callback)); } -function getAccountOrders(account, options, callback) { +function getOrders(account, options, callback) { validate.address(account); - validate.options(options); + validate.getOrdersOptions(options); const defaultLimit = 100; const limit = options.limit || defaultLimit; @@ -34,4 +34,4 @@ function getAccountOrders(account, options, callback) { (order) => order.properties.sequence), callback)); } -module.exports = utils.wrapCatch(getAccountOrders); +module.exports = utils.wrapCatch(getOrders); diff --git a/src/api/ledger/settings.js b/src/api/ledger/settings.js index c75677e7..f6162bc0 100644 --- a/src/api/ledger/settings.js +++ b/src/api/ledger/settings.js @@ -36,7 +36,7 @@ function formatSettings(response) { function getSettings(account, options, callback) { validate.address(account); - validate.options(options); + validate.getSettingsOptions(options); const request = { account: account, diff --git a/src/api/ledger/transaction.js b/src/api/ledger/transaction.js index ce856065..80818e25 100644 --- a/src/api/ledger/transaction.js +++ b/src/api/ledger/transaction.js @@ -49,7 +49,7 @@ function isTransactionInRange(tx, options) { function getTransaction(identifier, options, callback) { validate.identifier(identifier); - validate.options(options); + validate.getTransactionOptions(options); const remote = this.remote; diff --git a/src/api/ledger/trustlines.js b/src/api/ledger/trustlines.js index 4fd67e27..0a1be196 100644 --- a/src/api/ledger/trustlines.js +++ b/src/api/ledger/trustlines.js @@ -38,7 +38,7 @@ function getTrustlines( callback: () => void ): void { validate.address(account); - validate.options(options); + validate.getTrustlinesOptions(options); const defaultLimit = 100; const limit = options.limit || defaultLimit;