[API] Several fixes in `GET /api/v1/governor/limit` (#153)
### Summary Changes to `GET /api/v1/governor/limit`: * Fix the behavior of the parameters `page` and `pageSize` (which previously were being ignored). * When no results are found, return an HTTP status code of 200 and set the response to an empty array. * Remove the `sortOrder` query parameter. The rationale for removing the `sortOrder` parameter is that sorting chains by ascending/descending chain ID doesn't seem to be a useful operation.
This commit is contained in:
parent
e85fa82784
commit
4ca0bf1c0e
|
@ -231,16 +231,6 @@ const docTemplate = `{
|
||||||
"description": "Number of elements per page.",
|
"description": "Number of elements per page.",
|
||||||
"name": "pageSize",
|
"name": "pageSize",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
},
|
|
||||||
{
|
|
||||||
"enum": [
|
|
||||||
"ASC",
|
|
||||||
"DESC"
|
|
||||||
],
|
|
||||||
"type": "string",
|
|
||||||
"description": "Sort results in ascending or descending order.",
|
|
||||||
"name": "sortOrder",
|
|
||||||
"in": "query"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
|
@ -1970,7 +1960,7 @@ const docTemplate = `{
|
||||||
"build": {
|
"build": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"buildDate": {
|
"build_date": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"machine": {
|
"machine": {
|
||||||
|
|
|
@ -224,16 +224,6 @@
|
||||||
"description": "Number of elements per page.",
|
"description": "Number of elements per page.",
|
||||||
"name": "pageSize",
|
"name": "pageSize",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
},
|
|
||||||
{
|
|
||||||
"enum": [
|
|
||||||
"ASC",
|
|
||||||
"DESC"
|
|
||||||
],
|
|
||||||
"type": "string",
|
|
||||||
"description": "Sort results in ascending or descending order.",
|
|
||||||
"name": "sortOrder",
|
|
||||||
"in": "query"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
|
@ -1963,7 +1953,7 @@
|
||||||
"build": {
|
"build": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"buildDate": {
|
"build_date": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"machine": {
|
"machine": {
|
||||||
|
|
|
@ -307,7 +307,7 @@ definitions:
|
||||||
type: string
|
type: string
|
||||||
build:
|
build:
|
||||||
type: string
|
type: string
|
||||||
buildDate:
|
build_date:
|
||||||
type: string
|
type: string
|
||||||
machine:
|
machine:
|
||||||
type: string
|
type: string
|
||||||
|
@ -717,13 +717,6 @@ paths:
|
||||||
in: query
|
in: query
|
||||||
name: pageSize
|
name: pageSize
|
||||||
type: integer
|
type: integer
|
||||||
- description: Sort results in ascending or descending order.
|
|
||||||
enum:
|
|
||||||
- ASC
|
|
||||||
- DESC
|
|
||||||
in: query
|
|
||||||
name: sortOrder
|
|
||||||
type: string
|
|
||||||
responses:
|
responses:
|
||||||
"200":
|
"200":
|
||||||
description: OK
|
description: OK
|
||||||
|
|
|
@ -954,6 +954,7 @@ func (r *Repository) GetEnqueueVassByChainID(ctx context.Context, q *EnqueuedVaa
|
||||||
|
|
||||||
// GetGovernorLimit get a list of *GovernorLimit.
|
// GetGovernorLimit get a list of *GovernorLimit.
|
||||||
func (r *Repository) GetGovernorLimit(ctx context.Context, q *GovernorQuery) ([]*GovernorLimit, error) {
|
func (r *Repository) GetGovernorLimit(ctx context.Context, q *GovernorQuery) ([]*GovernorLimit, error) {
|
||||||
|
|
||||||
// lookup.
|
// lookup.
|
||||||
lookupStage1 := bson.D{
|
lookupStage1 := bson.D{
|
||||||
{Key: "$lookup", Value: bson.D{
|
{Key: "$lookup", Value: bson.D{
|
||||||
|
@ -1072,7 +1073,7 @@ func (r *Repository) GetGovernorLimit(ctx context.Context, q *GovernorQuery) ([]
|
||||||
}
|
}
|
||||||
|
|
||||||
// define aggregate pipeline
|
// define aggregate pipeline
|
||||||
pipeLine := mongo.Pipeline{
|
pipeline := mongo.Pipeline{
|
||||||
lookupStage1,
|
lookupStage1,
|
||||||
unwindStage2,
|
unwindStage2,
|
||||||
projectStage3,
|
projectStage3,
|
||||||
|
@ -1086,8 +1087,20 @@ func (r *Repository) GetGovernorLimit(ctx context.Context, q *GovernorQuery) ([]
|
||||||
sortStage11,
|
sortStage11,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// skip initial results
|
||||||
|
if q.Pagination.Skip != 0 {
|
||||||
|
pipeline = append(pipeline, bson.D{
|
||||||
|
{"$skip", q.Pagination.Skip},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// limit size of results
|
||||||
|
pipeline = append(pipeline, bson.D{
|
||||||
|
{"$limit", q.Pagination.Limit},
|
||||||
|
})
|
||||||
|
|
||||||
// execute aggregate operations.
|
// execute aggregate operations.
|
||||||
cur, err := r.collections.governorConfig.Aggregate(ctx, pipeLine)
|
cur, err := r.collections.governorConfig.Aggregate(ctx, pipeline)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
requestID := fmt.Sprintf("%v", ctx.Value("requestid"))
|
requestID := fmt.Sprintf("%v", ctx.Value("requestid"))
|
||||||
r.logger.Error("failed execute Aggregate command to get governor limit",
|
r.logger.Error("failed execute Aggregate command to get governor limit",
|
||||||
|
@ -1105,11 +1118,6 @@ func (r *Repository) GetGovernorLimit(ctx context.Context, q *GovernorQuery) ([]
|
||||||
return nil, errors.WithStack(err)
|
return nil, errors.WithStack(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// check exists records
|
|
||||||
if len(governorLimits) == 0 {
|
|
||||||
return nil, errs.ErrNotFound
|
|
||||||
}
|
|
||||||
|
|
||||||
return governorLimits, nil
|
return governorLimits, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -140,7 +140,6 @@ func (c *Controller) FindGovernorStatusByGuardianAddress(ctx *fiber.Ctx) error {
|
||||||
// @ID governor-notional-limit
|
// @ID governor-notional-limit
|
||||||
// @Param page query integer false "Page number."
|
// @Param page query integer false "Page number."
|
||||||
// @Param pageSize query integer false "Number of elements per page."
|
// @Param pageSize query integer false "Number of elements per page."
|
||||||
// @Param sortOrder query string false "Sort results in ascending or descending order." Enums(ASC, DESC)
|
|
||||||
// @Success 200 {object} response.Response[[]GovernorLimit]
|
// @Success 200 {object} response.Response[[]GovernorLimit]
|
||||||
// @Failure 400
|
// @Failure 400
|
||||||
// @Failure 500
|
// @Failure 500
|
||||||
|
|
Loading…
Reference in New Issue