mirror of
https://github.com/open-cluster-management-io/ocm.git
synced 2026-05-20 08:04:52 +00:00
Some checks failed
Post / coverage (push) Failing after 26m56s
Post / images (amd64) (push) Failing after 6m52s
Post / images (arm64) (push) Failing after 6m50s
Post / image manifest (push) Has been skipped
Post / trigger clusteradm e2e (push) Has been skipped
Close stale issues and PRs / stale (push) Successful in 54s
Scorecard supply-chain security / Scorecard analysis (push) Failing after 1m19s
* Acceping AWS IRSA registraion request Signed-off-by: Gaurav Jaswal <jaswalkiranavtar@gmail.com> * Addressing comments Signed-off-by: Gaurav Jaswal <jaswalkiranavtar@gmail.com> * Addressing comments Signed-off-by: Gaurav Jaswal <jaswalkiranavtar@gmail.com> * Making csr as a default enabled driver if no other driver is explicitly enabled Signed-off-by: Gaurav Jaswal <jaswalkiranavtar@gmail.com> --------- Signed-off-by: Gaurav Jaswal <jaswalkiranavtar@gmail.com> Co-authored-by: “Jeffrey <jeffreywong0417@gmail.com> Co-authored-by: Gaurav Jaswal <jaswalkiranavtar@gmail.com>
108 lines
2.2 KiB
Go
108 lines
2.2 KiB
Go
package httpbinding
|
|
|
|
import (
|
|
"encoding/base64"
|
|
"math"
|
|
"math/big"
|
|
"net/url"
|
|
"strconv"
|
|
)
|
|
|
|
// QueryValue is used to encode query key values
|
|
type QueryValue struct {
|
|
query url.Values
|
|
key string
|
|
append bool
|
|
}
|
|
|
|
// NewQueryValue creates a new QueryValue which enables encoding
|
|
// a query value into the given url.Values.
|
|
func NewQueryValue(query url.Values, key string, append bool) QueryValue {
|
|
return QueryValue{
|
|
query: query,
|
|
key: key,
|
|
append: append,
|
|
}
|
|
}
|
|
|
|
func (qv QueryValue) updateKey(value string) {
|
|
if qv.append {
|
|
qv.query.Add(qv.key, value)
|
|
} else {
|
|
qv.query.Set(qv.key, value)
|
|
}
|
|
}
|
|
|
|
// Blob encodes v as a base64 query string value
|
|
func (qv QueryValue) Blob(v []byte) {
|
|
encodeToString := base64.StdEncoding.EncodeToString(v)
|
|
qv.updateKey(encodeToString)
|
|
}
|
|
|
|
// Boolean encodes v as a query string value
|
|
func (qv QueryValue) Boolean(v bool) {
|
|
qv.updateKey(strconv.FormatBool(v))
|
|
}
|
|
|
|
// String encodes v as a query string value
|
|
func (qv QueryValue) String(v string) {
|
|
qv.updateKey(v)
|
|
}
|
|
|
|
// Byte encodes v as a query string value
|
|
func (qv QueryValue) Byte(v int8) {
|
|
qv.Long(int64(v))
|
|
}
|
|
|
|
// Short encodes v as a query string value
|
|
func (qv QueryValue) Short(v int16) {
|
|
qv.Long(int64(v))
|
|
}
|
|
|
|
// Integer encodes v as a query string value
|
|
func (qv QueryValue) Integer(v int32) {
|
|
qv.Long(int64(v))
|
|
}
|
|
|
|
// Long encodes v as a query string value
|
|
func (qv QueryValue) Long(v int64) {
|
|
qv.updateKey(strconv.FormatInt(v, 10))
|
|
}
|
|
|
|
// Float encodes v as a query string value
|
|
func (qv QueryValue) Float(v float32) {
|
|
qv.float(float64(v), 32)
|
|
}
|
|
|
|
// Double encodes v as a query string value
|
|
func (qv QueryValue) Double(v float64) {
|
|
qv.float(v, 64)
|
|
}
|
|
|
|
func (qv QueryValue) float(v float64, bitSize int) {
|
|
switch {
|
|
case math.IsNaN(v):
|
|
qv.String(floatNaN)
|
|
case math.IsInf(v, 1):
|
|
qv.String(floatInfinity)
|
|
case math.IsInf(v, -1):
|
|
qv.String(floatNegInfinity)
|
|
default:
|
|
qv.updateKey(strconv.FormatFloat(v, 'f', -1, bitSize))
|
|
}
|
|
}
|
|
|
|
// BigInteger encodes v as a query string value
|
|
func (qv QueryValue) BigInteger(v *big.Int) {
|
|
qv.updateKey(v.String())
|
|
}
|
|
|
|
// BigDecimal encodes v as a query string value
|
|
func (qv QueryValue) BigDecimal(v *big.Float) {
|
|
if i, accuracy := v.Int64(); accuracy == big.Exact {
|
|
qv.Long(i)
|
|
return
|
|
}
|
|
qv.updateKey(v.Text('e', -1))
|
|
}
|