Skip to content
This repository has been archived by the owner on Nov 2, 2018. It is now read-only.

Commit

Permalink
go fmt
Browse files Browse the repository at this point in the history
  • Loading branch information
hudaniel committed Feb 25, 2018
1 parent 5db8549 commit 804e2e5
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 43 deletions.
61 changes: 28 additions & 33 deletions node/api/api.go
Expand Up @@ -2,21 +2,16 @@ package api

import (
"encoding/json"
"math"
"net/http"
"strings"
"reflect"
"math"
"strconv"
"strings"

"github.com/NebulousLabs/Sia/build"
"github.com/NebulousLabs/Sia/modules"
)

const (
// size of each page for paginated API responses
DEFAULT_PAGINATION_SIZE = 25
)

// Error is a type that is encoded as JSON and returned in an API response in
// the event of an error. Only the Message field is required. More fields may
// be added to this struct in the future for better error reporting.
Expand All @@ -38,22 +33,22 @@ type Error struct {
}

type PaginationRequest struct {
HasPaginationQuery bool
PaginationQueryIsValid bool
Start int
Limit int
HasPaginationQuery bool
PaginationQueryIsValid bool
Start int
Limit int
}

type PaginationResponse struct {
Start int `json:"start"`
Limit int `json:"limit"`
TotalPages int `json:"total_pages"`
Start int `json:"start"`
Limit int `json:"limit"`
TotalPages int `json:"total_pages"`
}

type PaginationWrapper struct {
Start int
End int
TotalPages int
Start int
End int
TotalPages int
}

// Error implements the error interface for the Error type. It returns only the
Expand Down Expand Up @@ -197,37 +192,37 @@ func GetPaginationDefaultRequest(req *http.Request) PaginationRequest {
func GetPaginationRequest(req *http.Request, startQueryParam string, limitQueryParam string) PaginationRequest {
startString := req.FormValue(startQueryParam)
if startString == "" {
return PaginationRequest {
HasPaginationQuery: false,
return PaginationRequest{
HasPaginationQuery: false,
PaginationQueryIsValid: false,
Start: 0,
Limit: 0,
}
}
startIndex, err := strconv.Atoi(startString)
if err != nil || startIndex < 0 {
return PaginationRequest {
HasPaginationQuery: true,
return PaginationRequest{
HasPaginationQuery: true,
PaginationQueryIsValid: false,
Start: 0,
Limit: 0,
}
}
limit:= DEFAULT_PAGINATION_SIZE
limit := DefaultPaginationSize
limitString := req.FormValue(limitQueryParam)
if limitString != "" {
limit, err = strconv.Atoi(limitString)
if err != nil || limit <= 0 {
return PaginationRequest {
HasPaginationQuery: true,
return PaginationRequest{
HasPaginationQuery: true,
PaginationQueryIsValid: false,
Start: 0,
Limit: 0,
}
}
}
return PaginationRequest {
HasPaginationQuery: true,
return PaginationRequest{
HasPaginationQuery: true,
PaginationQueryIsValid: true,
Start: startIndex,
Limit: limit,
Expand All @@ -244,21 +239,21 @@ func GetPaginationIndicesAndResponse(sliceInterface interface{}, paginationReque
build.Critical("attempting to paginate on non-slice object type: ", slice.Kind())
}
startingPageIndex := int(math.Min(float64(paginationRequest.Start), float64(slice.Len())))
endingPageIndex := int(math.Min(float64(paginationRequest.Start + paginationRequest.Limit), float64(slice.Len())));
endingPageIndex := int(math.Min(float64(paginationRequest.Start+paginationRequest.Limit), float64(slice.Len())))
totalPages := slice.Len() / paginationRequest.Limit
if math.Mod(float64(slice.Len()), float64(paginationRequest.Limit)) != 0 {
totalPages += 1
}

pagination := PaginationWrapper {
Start: startingPageIndex,
End: endingPageIndex,
pagination := PaginationWrapper{
Start: startingPageIndex,
End: endingPageIndex,
TotalPages: totalPages,
}

paginationResponse := PaginationResponse {
Start: startingPageIndex,
Limit: paginationRequest.Limit,
paginationResponse := PaginationResponse{
Start: startingPageIndex,
Limit: paginationRequest.Limit,
TotalPages: totalPages,
}
return pagination, paginationResponse
Expand Down
20 changes: 10 additions & 10 deletions node/api/wallet.go
Expand Up @@ -46,8 +46,8 @@ type (
}

WalletAddressesPaginatedGET struct {
Addresses []types.UnlockHash `json:"addresses"`
Pagination PaginationResponse `json:"pagination"`
Addresses []types.UnlockHash `json:"addresses"`
Pagination PaginationResponse `json:"pagination"`
}

// WalletInitPOST contains the primary seed that gets generated during a
Expand Down Expand Up @@ -96,10 +96,10 @@ type (
}

WalletTransactionsPaginatedGET struct {
ConfirmedTransactions []modules.ProcessedTransaction `json:"confirmedtransactions"`
UnconfirmedTransactions []modules.ProcessedTransaction `json:"unconfirmedtransactions"`
ConfirmedTransactionsPagination PaginationResponse `json:"confirmed_transactions_pagination"`
UnconfirmedTransactionsPagination PaginationResponse `json:"unconfirmed_transactions_pagination"`
ConfirmedTransactions []modules.ProcessedTransaction `json:"confirmedtransactions"`
UnconfirmedTransactions []modules.ProcessedTransaction `json:"unconfirmedtransactions"`
ConfirmedTransactionsPagination PaginationResponse `json:"confirmed_transactions_pagination"`
UnconfirmedTransactionsPagination PaginationResponse `json:"unconfirmed_transactions_pagination"`
}

// WalletTransactionsGETaddr contains the set of wallet transactions
Expand Down Expand Up @@ -205,7 +205,7 @@ func (api *API) walletAddressesHandler(w http.ResponseWriter, req *http.Request,
pagination, paginationResponse := GetPaginationIndicesAndResponse(allAddresses, paginationRequest)
addresses := allAddresses[pagination.Start:pagination.End]
WriteJSON(w, WalletAddressesPaginatedGET{
Addresses: addresses,
Addresses: addresses,
Pagination: paginationResponse,
})
}
Expand Down Expand Up @@ -564,9 +564,9 @@ func (api *API) walletTransactionsHandler(w http.ResponseWriter, req *http.Reque
confirmedPagination, confirmedPaginationResponse := GetPaginationIndicesAndResponse(confirmedTxns, confirmedPaginationRequest)
unconfirmedPagination, unconfirmedPaginationResponse := GetPaginationIndicesAndResponse(unconfirmedTxns, unconfirmedPaginationRequest)
WriteJSON(w, WalletTransactionsPaginatedGET{
ConfirmedTransactions: confirmedTxns[confirmedPagination.Start:confirmedPagination.End],
UnconfirmedTransactions: unconfirmedTxns[unconfirmedPagination.Start:unconfirmedPagination.End],
ConfirmedTransactionsPagination: confirmedPaginationResponse,
ConfirmedTransactions: confirmedTxns[confirmedPagination.Start:confirmedPagination.End],
UnconfirmedTransactions: unconfirmedTxns[unconfirmedPagination.Start:unconfirmedPagination.End],
ConfirmedTransactionsPagination: confirmedPaginationResponse,
UnconfirmedTransactionsPagination: unconfirmedPaginationResponse,
})
}
Expand Down
3 changes: 3 additions & 0 deletions types/constants.go
Expand Up @@ -49,6 +49,9 @@ var (
SiafundCount = NewCurrency64(10000)
SiafundPortion = big.NewRat(39, 1000)
TargetWindow BlockHeight

// size of each page for paginated API responses
DefaultPaginationSize = 50
)

// init checks which build constant is in place and initializes the variables
Expand Down

0 comments on commit 804e2e5

Please sign in to comment.