-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
api: implement pagination and query params
* add new endpoints, all of them include a `pagination` field in reply, and accept QueryParams: * GET /elections * page * limit * status * organizationId * electionId * withResults * finalResults * manuallyEnded * GET /accounts * page * limit * GET /chain/transactions * page * limit * height * type * GET /chain/organizations * page * limit * organizationId * GET /chain/fees * page * limit * reference * type * accountId * GET /votes * page * limit * electionId * mark all of these endpoints as deprecated on swagger docs: * GET /accounts/page/{page} * GET /accounts/{organizationID}/elections/status/{status}/page/{page} * GET /accounts/{organizationID}/elections/page/{page} * GET /elections/page/{page} * POST /elections/filter/page/{page} * GET /chain/organizations/page/{page} * POST /chain/organizations/filter/page/{page} * GET /elections/{electionId}/votes/page/{page} all of these were anyway refactored in a backwards-compatible manner, to unify pagination logic (adding `pagination` field) * api: return ErrPageNotFound on all paginated endpoints, when page is negative or higher than last_page * api: new param `limit` in all paginated endpoints (defaults to DefaultItemsPerPage if ommitted, and can't surpass hardcoded MaxItemsPerPage) * api: all paginated endpoints return an empty list in case of no results (instead of 404) api internal code refactorings: * api: unify hardcoded structs into a new types: * AccountsList * ElectionsList * OrganizationsList * FeesList * VotesList * TransactionsList * CountResult * api: deduplicate several code snippets, with marshalAndSend and parse* helpers * api: rename const MaxPageSize -> MaxItemsPerPage * api: add Param* consts, and fix case of all URLParams 'ID' -> 'Id' * api: add *Params types (PaginationParams, ElectionParams, etc) * api: fix strings in errors returned to client, replacing "ID" -> "Id" * api: fix swagger docs, replace many occurences of "ID" -> "Id" * api: fix swagger docs, lots of small inaccuracies * test: add TestAPIAccountsList and TestAPIElectionsList indexer changes: * rename GetListAccounts -> AccountList * rename GetEnvelopes -> VoteList * replace GetTokenFees* methods with a single TokenFeesList * methods AccountList, ProcessList, EntityList, VoteList, TokenFeesList now: * return a TotalCount * reordered and renamed args (from, max) -> (limit, offset)
- Loading branch information
Showing
34 changed files
with
2,061 additions
and
1,391 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.