mirror of
https://github.com/arnaucube/hermez-node.git
synced 2026-02-07 03:16:45 +01:00
Merge pull request #440 from hermeznetwork/fix/api-empty-arrays
empty array instead of 404
This commit is contained in:
@@ -35,6 +35,9 @@ type testBatchesResponse struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t testBatchesResponse) GetPending() (pendingItems, lastItemID uint64) {
|
func (t testBatchesResponse) GetPending() (pendingItems, lastItemID uint64) {
|
||||||
|
if len(t.Batches) == 0 {
|
||||||
|
return 0, 0
|
||||||
|
}
|
||||||
pendingItems = t.PendingItems
|
pendingItems = t.PendingItems
|
||||||
lastItemID = t.Batches[len(t.Batches)-1].ItemID
|
lastItemID = t.Batches[len(t.Batches)-1].ItemID
|
||||||
return pendingItems, lastItemID
|
return pendingItems, lastItemID
|
||||||
@@ -220,6 +223,13 @@ func TestGetBatches(t *testing.T) {
|
|||||||
}
|
}
|
||||||
assertBatches(t, minMaxBatchNumBatches, fetchedBatches)
|
assertBatches(t, minMaxBatchNumBatches, fetchedBatches)
|
||||||
|
|
||||||
|
// Empty array
|
||||||
|
fetchedBatches = []testBatch{}
|
||||||
|
path = fmt.Sprintf("%s?slotNum=%d&minBatchNum=%d", endpoint, 1, 25)
|
||||||
|
err = doGoodReqPaginated(path, historydb.OrderAsc, &testBatchesResponse{}, appendIter)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assertBatches(t, []testBatch{}, fetchedBatches)
|
||||||
|
|
||||||
// 400
|
// 400
|
||||||
// Invalid minBatchNum
|
// Invalid minBatchNum
|
||||||
path = fmt.Sprintf("%s?minBatchNum=%d", endpoint, -2)
|
path = fmt.Sprintf("%s?minBatchNum=%d", endpoint, -2)
|
||||||
@@ -229,10 +239,6 @@ func TestGetBatches(t *testing.T) {
|
|||||||
path = fmt.Sprintf("%s?forgerAddr=%s", endpoint, "0xG0000001")
|
path = fmt.Sprintf("%s?forgerAddr=%s", endpoint, "0xG0000001")
|
||||||
err = doBadReq("GET", path, nil, 400)
|
err = doBadReq("GET", path, nil, 400)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
// 404
|
|
||||||
path = fmt.Sprintf("%s?slotNum=%d&minBatchNum=%d", endpoint, 1, 25)
|
|
||||||
err = doBadReq("GET", path, nil, 404)
|
|
||||||
assert.NoError(t, err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestGetBatch(t *testing.T) {
|
func TestGetBatch(t *testing.T) {
|
||||||
|
|||||||
@@ -29,6 +29,9 @@ type testBidsResponse struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t testBidsResponse) GetPending() (pendingItems, lastItemID uint64) {
|
func (t testBidsResponse) GetPending() (pendingItems, lastItemID uint64) {
|
||||||
|
if len(t.Bids) == 0 {
|
||||||
|
return 0, 0
|
||||||
|
}
|
||||||
pendingItems = t.PendingItems
|
pendingItems = t.PendingItems
|
||||||
lastItemID = t.Bids[len(t.Bids)-1].ItemID
|
lastItemID = t.Bids[len(t.Bids)-1].ItemID
|
||||||
return pendingItems, lastItemID
|
return pendingItems, lastItemID
|
||||||
@@ -127,6 +130,13 @@ func TestGetBids(t *testing.T) {
|
|||||||
}
|
}
|
||||||
assertBids(t, slotNumBidderAddrBids, fetchedBids)
|
assertBids(t, slotNumBidderAddrBids, fetchedBids)
|
||||||
|
|
||||||
|
// Empty array
|
||||||
|
fetchedBids = []testBid{}
|
||||||
|
path = fmt.Sprintf("%s?slotNum=%d&bidderAddr=%s", endpoint, 5, tc.bids[1].Bidder.String())
|
||||||
|
err = doGoodReqPaginated(path, historydb.OrderAsc, &testBidsResponse{}, appendIter)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assertBids(t, []testBid{}, fetchedBids)
|
||||||
|
|
||||||
// 400
|
// 400
|
||||||
// No filters
|
// No filters
|
||||||
path = fmt.Sprintf("%s?limit=%d", endpoint, limit)
|
path = fmt.Sprintf("%s?limit=%d", endpoint, limit)
|
||||||
@@ -140,10 +150,6 @@ func TestGetBids(t *testing.T) {
|
|||||||
path = fmt.Sprintf("%s?bidderAddr=%s", endpoint, "0xG0000001")
|
path = fmt.Sprintf("%s?bidderAddr=%s", endpoint, "0xG0000001")
|
||||||
err = doBadReq("GET", path, nil, 400)
|
err = doBadReq("GET", path, nil, 400)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
// 404
|
|
||||||
path = fmt.Sprintf("%s?slotNum=%d&bidderAddr=%s", endpoint, 5, tc.bids[1].Bidder.String())
|
|
||||||
err = doBadReq("GET", path, nil, 404)
|
|
||||||
assert.NoError(t, err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func assertBids(t *testing.T, expected, actual []testBid) {
|
func assertBids(t *testing.T, expected, actual []testBid) {
|
||||||
|
|||||||
@@ -16,6 +16,9 @@ type testCoordinatorsResponse struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t testCoordinatorsResponse) GetPending() (pendingItems, lastItemID uint64) {
|
func (t testCoordinatorsResponse) GetPending() (pendingItems, lastItemID uint64) {
|
||||||
|
if len(t.Coordinators) == 0 {
|
||||||
|
return 0, 0
|
||||||
|
}
|
||||||
pendingItems = t.PendingItems
|
pendingItems = t.PendingItems
|
||||||
lastItemID = t.Coordinators[len(t.Coordinators)-1].ItemID
|
lastItemID = t.Coordinators[len(t.Coordinators)-1].ItemID
|
||||||
return pendingItems, lastItemID
|
return pendingItems, lastItemID
|
||||||
@@ -67,7 +70,6 @@ func TestGetCoordinators(t *testing.T) {
|
|||||||
reversedCoordinators = append(reversedCoordinators, tc.coordinators[len(tc.coordinators)-1-i])
|
reversedCoordinators = append(reversedCoordinators, tc.coordinators[len(tc.coordinators)-1-i])
|
||||||
}
|
}
|
||||||
assertCoordinators(t, reversedCoordinators, fetchedCoordinators)
|
assertCoordinators(t, reversedCoordinators, fetchedCoordinators)
|
||||||
|
|
||||||
for _, filteredCoord := range tc.coordinators {
|
for _, filteredCoord := range tc.coordinators {
|
||||||
// By bidder
|
// By bidder
|
||||||
fetchedCoordinators = []historydb.CoordinatorAPI{}
|
fetchedCoordinators = []historydb.CoordinatorAPI{}
|
||||||
@@ -87,14 +89,17 @@ func TestGetCoordinators(t *testing.T) {
|
|||||||
assertCoordinators(t, []historydb.CoordinatorAPI{filteredCoord}, fetchedCoordinators)
|
assertCoordinators(t, []historydb.CoordinatorAPI{filteredCoord}, fetchedCoordinators)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Empty array
|
||||||
|
fetchedCoordinators = []historydb.CoordinatorAPI{}
|
||||||
|
path = fmt.Sprintf("%s?bidderAddr=0xaa942cfcd25ad4d90a62358b0dd84f33b398262a", endpoint)
|
||||||
|
err = doGoodReqPaginated(path, historydb.OrderDesc, &testCoordinatorsResponse{}, appendIter)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assertCoordinators(t, []historydb.CoordinatorAPI{}, fetchedCoordinators)
|
||||||
|
|
||||||
// 400
|
// 400
|
||||||
path = fmt.Sprintf("%s?bidderAddr=0x001", endpoint)
|
path = fmt.Sprintf("%s?bidderAddr=0x001", endpoint)
|
||||||
err = doBadReq("GET", path, nil, 400)
|
err = doBadReq("GET", path, nil, 400)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
// 404
|
|
||||||
path = fmt.Sprintf("%s?bidderAddr=0xaa942cfcd25ad4d90a62358b0dd84f33b398262a", endpoint)
|
|
||||||
err = doBadReq("GET", path, nil, 404)
|
|
||||||
assert.NoError(t, err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func assertCoordinator(t *testing.T, expected, actual historydb.CoordinatorAPI) {
|
func assertCoordinator(t *testing.T, expected, actual historydb.CoordinatorAPI) {
|
||||||
|
|||||||
@@ -43,6 +43,9 @@ type testExitsResponse struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t testExitsResponse) GetPending() (pendingItems, lastItemID uint64) {
|
func (t testExitsResponse) GetPending() (pendingItems, lastItemID uint64) {
|
||||||
|
if len(t.Exits) == 0 {
|
||||||
|
return 0, 0
|
||||||
|
}
|
||||||
pendingItems = t.PendingItems
|
pendingItems = t.PendingItems
|
||||||
lastItemID = t.Exits[len(t.Exits)-1].ItemID
|
lastItemID = t.Exits[len(t.Exits)-1].ItemID
|
||||||
return pendingItems, lastItemID
|
return pendingItems, lastItemID
|
||||||
@@ -248,6 +251,12 @@ func TestGetExits(t *testing.T) {
|
|||||||
err = doGoodReqPaginated(path, historydb.OrderDesc, &testExitsResponse{}, appendIter)
|
err = doGoodReqPaginated(path, historydb.OrderDesc, &testExitsResponse{}, appendIter)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assertExitAPIs(t, flipedExits, fetchedExits)
|
assertExitAPIs(t, flipedExits, fetchedExits)
|
||||||
|
// Empty array
|
||||||
|
fetchedExits = []testExit{}
|
||||||
|
path = fmt.Sprintf("%s?batchNum=999999", endpoint)
|
||||||
|
err = doGoodReqPaginated(path, historydb.OrderDesc, &testExitsResponse{}, appendIter)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assertExitAPIs(t, []testExit{}, fetchedExits)
|
||||||
// 400
|
// 400
|
||||||
path = fmt.Sprintf(
|
path = fmt.Sprintf(
|
||||||
"%s?accountIndex=%s&hezEthereumAddress=%s",
|
"%s?accountIndex=%s&hezEthereumAddress=%s",
|
||||||
@@ -258,13 +267,6 @@ func TestGetExits(t *testing.T) {
|
|||||||
path = fmt.Sprintf("%s?tokenId=X", endpoint)
|
path = fmt.Sprintf("%s?tokenId=X", endpoint)
|
||||||
err = doBadReq("GET", path, nil, 400)
|
err = doBadReq("GET", path, nil, 400)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
// 404
|
|
||||||
path = fmt.Sprintf("%s?batchNum=999999", endpoint)
|
|
||||||
err = doBadReq("GET", path, nil, 404)
|
|
||||||
assert.NoError(t, err)
|
|
||||||
path = fmt.Sprintf("%s?fromItem=1000999999", endpoint)
|
|
||||||
err = doBadReq("GET", path, nil, 404)
|
|
||||||
assert.NoError(t, err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestGetExit(t *testing.T) {
|
func TestGetExit(t *testing.T) {
|
||||||
|
|||||||
@@ -215,12 +215,6 @@ paths:
|
|||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/Error400'
|
$ref: '#/components/schemas/Error400'
|
||||||
'404':
|
|
||||||
description: Not found.
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
$ref: '#/components/schemas/Error404'
|
|
||||||
'500':
|
'500':
|
||||||
description: Internal server error.
|
description: Internal server error.
|
||||||
content:
|
content:
|
||||||
@@ -347,12 +341,6 @@ paths:
|
|||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/Error400'
|
$ref: '#/components/schemas/Error400'
|
||||||
'404':
|
|
||||||
description: Not found.
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
$ref: '#/components/schemas/Error404'
|
|
||||||
'500':
|
'500':
|
||||||
description: Internal server error.
|
description: Internal server error.
|
||||||
content:
|
content:
|
||||||
@@ -565,12 +553,6 @@ paths:
|
|||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/Error400'
|
$ref: '#/components/schemas/Error400'
|
||||||
'404':
|
|
||||||
description: Not found.
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
$ref: '#/components/schemas/Error404'
|
|
||||||
'500':
|
'500':
|
||||||
description: Internal server error.
|
description: Internal server error.
|
||||||
content:
|
content:
|
||||||
@@ -687,12 +669,6 @@ paths:
|
|||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/Error400'
|
$ref: '#/components/schemas/Error400'
|
||||||
'404':
|
|
||||||
description: Not found.
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
$ref: '#/components/schemas/Error404'
|
|
||||||
'500':
|
'500':
|
||||||
description: Internal server error.
|
description: Internal server error.
|
||||||
content:
|
content:
|
||||||
@@ -850,12 +826,6 @@ paths:
|
|||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/Error400'
|
$ref: '#/components/schemas/Error400'
|
||||||
'404':
|
|
||||||
description: Not found.
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
$ref: '#/components/schemas/Error404'
|
|
||||||
'500':
|
'500':
|
||||||
description: Internal server error.
|
description: Internal server error.
|
||||||
content:
|
content:
|
||||||
@@ -960,12 +930,6 @@ paths:
|
|||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/Error400'
|
$ref: '#/components/schemas/Error400'
|
||||||
'404':
|
|
||||||
description: Not found.
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
$ref: '#/components/schemas/Error404'
|
|
||||||
'500':
|
'500':
|
||||||
description: Internal server error.
|
description: Internal server error.
|
||||||
content:
|
content:
|
||||||
@@ -1085,12 +1049,6 @@ paths:
|
|||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/Error400'
|
$ref: '#/components/schemas/Error400'
|
||||||
'404':
|
|
||||||
description: Not found.
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
$ref: '#/components/schemas/Error404'
|
|
||||||
'500':
|
'500':
|
||||||
description: Internal server error.
|
description: Internal server error.
|
||||||
content:
|
content:
|
||||||
|
|||||||
@@ -88,6 +88,9 @@ type testTxsResponse struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t testTxsResponse) GetPending() (pendingItems, lastItemID uint64) {
|
func (t testTxsResponse) GetPending() (pendingItems, lastItemID uint64) {
|
||||||
|
if len(t.Txs) == 0 {
|
||||||
|
return 0, 0
|
||||||
|
}
|
||||||
pendingItems = t.PendingItems
|
pendingItems = t.PendingItems
|
||||||
lastItemID = t.Txs[len(t.Txs)-1].ItemID
|
lastItemID = t.Txs[len(t.Txs)-1].ItemID
|
||||||
return pendingItems, lastItemID
|
return pendingItems, lastItemID
|
||||||
@@ -420,6 +423,12 @@ func TestGetHistoryTxs(t *testing.T) {
|
|||||||
flipedTxs = append(flipedTxs, tc.txs[len(tc.txs)-1-i])
|
flipedTxs = append(flipedTxs, tc.txs[len(tc.txs)-1-i])
|
||||||
}
|
}
|
||||||
assertTxs(t, flipedTxs, fetchedTxs)
|
assertTxs(t, flipedTxs, fetchedTxs)
|
||||||
|
// Empty array
|
||||||
|
fetchedTxs = []testTx{}
|
||||||
|
path = fmt.Sprintf("%s?batchNum=999999", endpoint)
|
||||||
|
err = doGoodReqPaginated(path, historydb.OrderDesc, &testTxsResponse{}, appendIter)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assertTxs(t, []testTx{}, fetchedTxs)
|
||||||
// 400
|
// 400
|
||||||
path = fmt.Sprintf(
|
path = fmt.Sprintf(
|
||||||
"%s?accountIndex=%s&hezEthereumAddress=%s",
|
"%s?accountIndex=%s&hezEthereumAddress=%s",
|
||||||
@@ -430,13 +439,6 @@ func TestGetHistoryTxs(t *testing.T) {
|
|||||||
path = fmt.Sprintf("%s?tokenId=X", endpoint)
|
path = fmt.Sprintf("%s?tokenId=X", endpoint)
|
||||||
err = doBadReq("GET", path, nil, 400)
|
err = doBadReq("GET", path, nil, 400)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
// 404
|
|
||||||
path = fmt.Sprintf("%s?batchNum=999999", endpoint)
|
|
||||||
err = doBadReq("GET", path, nil, 404)
|
|
||||||
assert.NoError(t, err)
|
|
||||||
path = fmt.Sprintf("%s?fromItem=1000999999", endpoint)
|
|
||||||
err = doBadReq("GET", path, nil, 404)
|
|
||||||
assert.NoError(t, err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestGetHistoryTx(t *testing.T) {
|
func TestGetHistoryTx(t *testing.T) {
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package historydb
|
package historydb
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"math"
|
"math"
|
||||||
@@ -265,7 +264,7 @@ func (hdb *HistoryDB) GetBatchesAPI(
|
|||||||
}
|
}
|
||||||
batches := db.SlicePtrsToSlice(batchPtrs).([]BatchAPI)
|
batches := db.SlicePtrsToSlice(batchPtrs).([]BatchAPI)
|
||||||
if len(batches) == 0 {
|
if len(batches) == 0 {
|
||||||
return nil, 0, tracerr.Wrap(sql.ErrNoRows)
|
return batches, 0, nil
|
||||||
}
|
}
|
||||||
return batches, batches[0].TotalItems - uint64(len(batches)), nil
|
return batches, batches[0].TotalItems - uint64(len(batches)), nil
|
||||||
}
|
}
|
||||||
@@ -441,7 +440,7 @@ func (hdb *HistoryDB) GetBestBidsAPI(
|
|||||||
// log.Debug(query)
|
// log.Debug(query)
|
||||||
bids := db.SlicePtrsToSlice(bidPtrs).([]BidAPI)
|
bids := db.SlicePtrsToSlice(bidPtrs).([]BidAPI)
|
||||||
if len(bids) == 0 {
|
if len(bids) == 0 {
|
||||||
return nil, 0, tracerr.Wrap(sql.ErrNoRows)
|
return bids, 0, nil
|
||||||
}
|
}
|
||||||
return bids, bids[0].TotalItems - uint64(len(bids)), nil
|
return bids, bids[0].TotalItems - uint64(len(bids)), nil
|
||||||
}
|
}
|
||||||
@@ -512,7 +511,7 @@ func (hdb *HistoryDB) GetBidsAPI(
|
|||||||
return nil, 0, tracerr.Wrap(err)
|
return nil, 0, tracerr.Wrap(err)
|
||||||
}
|
}
|
||||||
if len(bids) == 0 {
|
if len(bids) == 0 {
|
||||||
return nil, 0, tracerr.Wrap(sql.ErrNoRows)
|
return []BidAPI{}, 0, nil
|
||||||
}
|
}
|
||||||
return db.SlicePtrsToSlice(bids).([]BidAPI), bids[0].TotalItems - uint64(len(bids)), nil
|
return db.SlicePtrsToSlice(bids).([]BidAPI), bids[0].TotalItems - uint64(len(bids)), nil
|
||||||
}
|
}
|
||||||
@@ -739,7 +738,7 @@ func (hdb *HistoryDB) GetTokens(
|
|||||||
return nil, 0, tracerr.Wrap(err)
|
return nil, 0, tracerr.Wrap(err)
|
||||||
}
|
}
|
||||||
if len(tokens) == 0 {
|
if len(tokens) == 0 {
|
||||||
return nil, 0, tracerr.Wrap(sql.ErrNoRows)
|
return []TokenWithUSD{}, 0, nil
|
||||||
}
|
}
|
||||||
return db.SlicePtrsToSlice(tokens).([]TokenWithUSD), uint64(len(tokens)) - tokens[0].TotalItems, nil
|
return db.SlicePtrsToSlice(tokens).([]TokenWithUSD), uint64(len(tokens)) - tokens[0].TotalItems, nil
|
||||||
}
|
}
|
||||||
@@ -1056,7 +1055,7 @@ func (hdb *HistoryDB) GetHistoryTxs(
|
|||||||
}
|
}
|
||||||
txs := db.SlicePtrsToSlice(txsPtrs).([]TxAPI)
|
txs := db.SlicePtrsToSlice(txsPtrs).([]TxAPI)
|
||||||
if len(txs) == 0 {
|
if len(txs) == 0 {
|
||||||
return nil, 0, tracerr.Wrap(sql.ErrNoRows)
|
return txs, 0, nil
|
||||||
}
|
}
|
||||||
return txs, txs[0].TotalItems - uint64(len(txs)), nil
|
return txs, txs[0].TotalItems - uint64(len(txs)), nil
|
||||||
}
|
}
|
||||||
@@ -1199,7 +1198,7 @@ func (hdb *HistoryDB) GetExitsAPI(
|
|||||||
return nil, 0, tracerr.Wrap(err)
|
return nil, 0, tracerr.Wrap(err)
|
||||||
}
|
}
|
||||||
if len(exits) == 0 {
|
if len(exits) == 0 {
|
||||||
return nil, 0, tracerr.Wrap(sql.ErrNoRows)
|
return []ExitAPI{}, 0, nil
|
||||||
}
|
}
|
||||||
return db.SlicePtrsToSlice(exits).([]ExitAPI), exits[0].TotalItems - uint64(len(exits)), nil
|
return db.SlicePtrsToSlice(exits).([]ExitAPI), exits[0].TotalItems - uint64(len(exits)), nil
|
||||||
}
|
}
|
||||||
@@ -1688,7 +1687,7 @@ func (hdb *HistoryDB) GetCoordinatorsAPI(
|
|||||||
return nil, 0, tracerr.Wrap(err)
|
return nil, 0, tracerr.Wrap(err)
|
||||||
}
|
}
|
||||||
if len(coordinators) == 0 {
|
if len(coordinators) == 0 {
|
||||||
return nil, 0, tracerr.Wrap(sql.ErrNoRows)
|
return []CoordinatorAPI{}, 0, nil
|
||||||
}
|
}
|
||||||
return db.SlicePtrsToSlice(coordinators).([]CoordinatorAPI),
|
return db.SlicePtrsToSlice(coordinators).([]CoordinatorAPI),
|
||||||
coordinators[0].TotalItems - uint64(len(coordinators)), nil
|
coordinators[0].TotalItems - uint64(len(coordinators)), nil
|
||||||
@@ -1811,7 +1810,7 @@ func (hdb *HistoryDB) GetAccountsAPI(
|
|||||||
return nil, 0, tracerr.Wrap(err)
|
return nil, 0, tracerr.Wrap(err)
|
||||||
}
|
}
|
||||||
if len(accounts) == 0 {
|
if len(accounts) == 0 {
|
||||||
return nil, 0, tracerr.Wrap(sql.ErrNoRows)
|
return []AccountAPI{}, 0, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return db.SlicePtrsToSlice(accounts).([]AccountAPI),
|
return db.SlicePtrsToSlice(accounts).([]AccountAPI),
|
||||||
|
|||||||
Reference in New Issue
Block a user