duration parameter (#319)

This commit is contained in:
Michael Quigley
2023-05-09 11:36:53 -04:00
parent 58a225284d
commit 21fdaf8e3c
16 changed files with 331 additions and 10 deletions

View File

@@ -9,7 +9,10 @@ import (
"net/http"
"github.com/go-openapi/errors"
"github.com/go-openapi/runtime"
"github.com/go-openapi/runtime/middleware"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
)
// NewGetAccountMetricsParams creates a new GetAccountMetricsParams object
@@ -28,6 +31,11 @@ type GetAccountMetricsParams struct {
// HTTP Request Object
HTTPRequest *http.Request `json:"-"`
/*
In: query
*/
Duration *float64
}
// BindRequest both binds and validates a request, it assumes that complex things implement a Validatable(strfmt.Registry) error interface
@@ -39,8 +47,37 @@ func (o *GetAccountMetricsParams) BindRequest(r *http.Request, route *middleware
o.HTTPRequest = r
qs := runtime.Values(r.URL.Query())
qDuration, qhkDuration, _ := qs.GetOK("duration")
if err := o.bindDuration(qDuration, qhkDuration, route.Formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
// bindDuration binds and validates parameter Duration from query.
func (o *GetAccountMetricsParams) bindDuration(rawData []string, hasKey bool, formats strfmt.Registry) error {
var raw string
if len(rawData) > 0 {
raw = rawData[len(rawData)-1]
}
// Required: false
// AllowEmptyValue: false
if raw == "" { // empty values pass all other validations
return nil
}
value, err := swag.ConvertFloat64(raw)
if err != nil {
return errors.InvalidType("duration", "query", "float64", raw)
}
o.Duration = &value
return nil
}