// Code generated by ogen, DO NOT EDIT. package rest import ( "net/http" "time" "github.com/go-faster/errors" "github.com/ogen-go/ogen/conv" "github.com/ogen-go/ogen/middleware" "github.com/ogen-go/ogen/ogenerrors" "github.com/ogen-go/ogen/uri" "github.com/ogen-go/ogen/validate" ) // PerformPredictionParams is parameters of performPrediction operation. type PerformPredictionParams struct { LaunchLatitude float64 LaunchLongitude float64 LaunchDatetime time.Time LaunchAltitude OptFloat64 `json:",omitempty,omitzero"` Profile OptPerformPredictionProfile `json:",omitempty,omitzero"` AscentRate OptFloat64 `json:",omitempty,omitzero"` BurstAltitude OptFloat64 `json:",omitempty,omitzero"` DescentRate OptFloat64 `json:",omitempty,omitzero"` FloatAltitude OptFloat64 `json:",omitempty,omitzero"` StopDatetime OptDateTime `json:",omitempty,omitzero"` Dataset OptDateTime `json:",omitempty,omitzero"` } func unpackPerformPredictionParams(packed middleware.Parameters) (params PerformPredictionParams) { { key := middleware.ParameterKey{ Name: "launch_latitude", In: "query", } params.LaunchLatitude = packed[key].(float64) } { key := middleware.ParameterKey{ Name: "launch_longitude", In: "query", } params.LaunchLongitude = packed[key].(float64) } { key := middleware.ParameterKey{ Name: "launch_datetime", In: "query", } params.LaunchDatetime = packed[key].(time.Time) } { key := middleware.ParameterKey{ Name: "launch_altitude", In: "query", } if v, ok := packed[key]; ok { params.LaunchAltitude = v.(OptFloat64) } } { key := middleware.ParameterKey{ Name: "profile", In: "query", } if v, ok := packed[key]; ok { params.Profile = v.(OptPerformPredictionProfile) } } { key := middleware.ParameterKey{ Name: "ascent_rate", In: "query", } if v, ok := packed[key]; ok { params.AscentRate = v.(OptFloat64) } } { key := middleware.ParameterKey{ Name: "burst_altitude", In: "query", } if v, ok := packed[key]; ok { params.BurstAltitude = v.(OptFloat64) } } { key := middleware.ParameterKey{ Name: "descent_rate", In: "query", } if v, ok := packed[key]; ok { params.DescentRate = v.(OptFloat64) } } { key := middleware.ParameterKey{ Name: "float_altitude", In: "query", } if v, ok := packed[key]; ok { params.FloatAltitude = v.(OptFloat64) } } { key := middleware.ParameterKey{ Name: "stop_datetime", In: "query", } if v, ok := packed[key]; ok { params.StopDatetime = v.(OptDateTime) } } { key := middleware.ParameterKey{ Name: "dataset", In: "query", } if v, ok := packed[key]; ok { params.Dataset = v.(OptDateTime) } } return params } func decodePerformPredictionParams(args [0]string, argsEscaped bool, r *http.Request) (params PerformPredictionParams, _ error) { q := uri.NewQueryDecoder(r.URL.Query()) // Decode query: launch_latitude. if err := func() error { cfg := uri.QueryParameterDecodingConfig{ Name: "launch_latitude", Style: uri.QueryStyleForm, Explode: true, } if err := q.HasParam(cfg); err == nil { if err := q.DecodeParam(cfg, func(d uri.Decoder) error { val, err := d.DecodeValue() if err != nil { return err } c, err := conv.ToFloat64(val) if err != nil { return err } params.LaunchLatitude = c return nil }); err != nil { return err } if err := func() error { if err := (validate.Float{}).Validate(float64(params.LaunchLatitude)); err != nil { return errors.Wrap(err, "float") } return nil }(); err != nil { return err } } else { return err } return nil }(); err != nil { return params, &ogenerrors.DecodeParamError{ Name: "launch_latitude", In: "query", Err: err, } } // Decode query: launch_longitude. if err := func() error { cfg := uri.QueryParameterDecodingConfig{ Name: "launch_longitude", Style: uri.QueryStyleForm, Explode: true, } if err := q.HasParam(cfg); err == nil { if err := q.DecodeParam(cfg, func(d uri.Decoder) error { val, err := d.DecodeValue() if err != nil { return err } c, err := conv.ToFloat64(val) if err != nil { return err } params.LaunchLongitude = c return nil }); err != nil { return err } if err := func() error { if err := (validate.Float{}).Validate(float64(params.LaunchLongitude)); err != nil { return errors.Wrap(err, "float") } return nil }(); err != nil { return err } } else { return err } return nil }(); err != nil { return params, &ogenerrors.DecodeParamError{ Name: "launch_longitude", In: "query", Err: err, } } // Decode query: launch_datetime. if err := func() error { cfg := uri.QueryParameterDecodingConfig{ Name: "launch_datetime", Style: uri.QueryStyleForm, Explode: true, } if err := q.HasParam(cfg); err == nil { if err := q.DecodeParam(cfg, func(d uri.Decoder) error { val, err := d.DecodeValue() if err != nil { return err } c, err := conv.ToDateTime(val) if err != nil { return err } params.LaunchDatetime = c return nil }); err != nil { return err } } else { return err } return nil }(); err != nil { return params, &ogenerrors.DecodeParamError{ Name: "launch_datetime", In: "query", Err: err, } } // Decode query: launch_altitude. if err := func() error { cfg := uri.QueryParameterDecodingConfig{ Name: "launch_altitude", Style: uri.QueryStyleForm, Explode: true, } if err := q.HasParam(cfg); err == nil { if err := q.DecodeParam(cfg, func(d uri.Decoder) error { var paramsDotLaunchAltitudeVal float64 if err := func() error { val, err := d.DecodeValue() if err != nil { return err } c, err := conv.ToFloat64(val) if err != nil { return err } paramsDotLaunchAltitudeVal = c return nil }(); err != nil { return err } params.LaunchAltitude.SetTo(paramsDotLaunchAltitudeVal) return nil }); err != nil { return err } if err := func() error { if value, ok := params.LaunchAltitude.Get(); ok { if err := func() error { if err := (validate.Float{}).Validate(float64(value)); err != nil { return errors.Wrap(err, "float") } return nil }(); err != nil { return err } } return nil }(); err != nil { return err } } return nil }(); err != nil { return params, &ogenerrors.DecodeParamError{ Name: "launch_altitude", In: "query", Err: err, } } // Set default value for query: profile. { val := PerformPredictionProfile("standard_profile") params.Profile.SetTo(val) } // Decode query: profile. if err := func() error { cfg := uri.QueryParameterDecodingConfig{ Name: "profile", Style: uri.QueryStyleForm, Explode: true, } if err := q.HasParam(cfg); err == nil { if err := q.DecodeParam(cfg, func(d uri.Decoder) error { var paramsDotProfileVal PerformPredictionProfile if err := func() error { val, err := d.DecodeValue() if err != nil { return err } c, err := conv.ToString(val) if err != nil { return err } paramsDotProfileVal = PerformPredictionProfile(c) return nil }(); err != nil { return err } params.Profile.SetTo(paramsDotProfileVal) return nil }); err != nil { return err } if err := func() error { if value, ok := params.Profile.Get(); ok { if err := func() error { if err := value.Validate(); err != nil { return err } return nil }(); err != nil { return err } } return nil }(); err != nil { return err } } return nil }(); err != nil { return params, &ogenerrors.DecodeParamError{ Name: "profile", In: "query", Err: err, } } // Decode query: ascent_rate. if err := func() error { cfg := uri.QueryParameterDecodingConfig{ Name: "ascent_rate", Style: uri.QueryStyleForm, Explode: true, } if err := q.HasParam(cfg); err == nil { if err := q.DecodeParam(cfg, func(d uri.Decoder) error { var paramsDotAscentRateVal float64 if err := func() error { val, err := d.DecodeValue() if err != nil { return err } c, err := conv.ToFloat64(val) if err != nil { return err } paramsDotAscentRateVal = c return nil }(); err != nil { return err } params.AscentRate.SetTo(paramsDotAscentRateVal) return nil }); err != nil { return err } if err := func() error { if value, ok := params.AscentRate.Get(); ok { if err := func() error { if err := (validate.Float{}).Validate(float64(value)); err != nil { return errors.Wrap(err, "float") } return nil }(); err != nil { return err } } return nil }(); err != nil { return err } } return nil }(); err != nil { return params, &ogenerrors.DecodeParamError{ Name: "ascent_rate", In: "query", Err: err, } } // Decode query: burst_altitude. if err := func() error { cfg := uri.QueryParameterDecodingConfig{ Name: "burst_altitude", Style: uri.QueryStyleForm, Explode: true, } if err := q.HasParam(cfg); err == nil { if err := q.DecodeParam(cfg, func(d uri.Decoder) error { var paramsDotBurstAltitudeVal float64 if err := func() error { val, err := d.DecodeValue() if err != nil { return err } c, err := conv.ToFloat64(val) if err != nil { return err } paramsDotBurstAltitudeVal = c return nil }(); err != nil { return err } params.BurstAltitude.SetTo(paramsDotBurstAltitudeVal) return nil }); err != nil { return err } if err := func() error { if value, ok := params.BurstAltitude.Get(); ok { if err := func() error { if err := (validate.Float{}).Validate(float64(value)); err != nil { return errors.Wrap(err, "float") } return nil }(); err != nil { return err } } return nil }(); err != nil { return err } } return nil }(); err != nil { return params, &ogenerrors.DecodeParamError{ Name: "burst_altitude", In: "query", Err: err, } } // Decode query: descent_rate. if err := func() error { cfg := uri.QueryParameterDecodingConfig{ Name: "descent_rate", Style: uri.QueryStyleForm, Explode: true, } if err := q.HasParam(cfg); err == nil { if err := q.DecodeParam(cfg, func(d uri.Decoder) error { var paramsDotDescentRateVal float64 if err := func() error { val, err := d.DecodeValue() if err != nil { return err } c, err := conv.ToFloat64(val) if err != nil { return err } paramsDotDescentRateVal = c return nil }(); err != nil { return err } params.DescentRate.SetTo(paramsDotDescentRateVal) return nil }); err != nil { return err } if err := func() error { if value, ok := params.DescentRate.Get(); ok { if err := func() error { if err := (validate.Float{}).Validate(float64(value)); err != nil { return errors.Wrap(err, "float") } return nil }(); err != nil { return err } } return nil }(); err != nil { return err } } return nil }(); err != nil { return params, &ogenerrors.DecodeParamError{ Name: "descent_rate", In: "query", Err: err, } } // Decode query: float_altitude. if err := func() error { cfg := uri.QueryParameterDecodingConfig{ Name: "float_altitude", Style: uri.QueryStyleForm, Explode: true, } if err := q.HasParam(cfg); err == nil { if err := q.DecodeParam(cfg, func(d uri.Decoder) error { var paramsDotFloatAltitudeVal float64 if err := func() error { val, err := d.DecodeValue() if err != nil { return err } c, err := conv.ToFloat64(val) if err != nil { return err } paramsDotFloatAltitudeVal = c return nil }(); err != nil { return err } params.FloatAltitude.SetTo(paramsDotFloatAltitudeVal) return nil }); err != nil { return err } if err := func() error { if value, ok := params.FloatAltitude.Get(); ok { if err := func() error { if err := (validate.Float{}).Validate(float64(value)); err != nil { return errors.Wrap(err, "float") } return nil }(); err != nil { return err } } return nil }(); err != nil { return err } } return nil }(); err != nil { return params, &ogenerrors.DecodeParamError{ Name: "float_altitude", In: "query", Err: err, } } // Decode query: stop_datetime. if err := func() error { cfg := uri.QueryParameterDecodingConfig{ Name: "stop_datetime", Style: uri.QueryStyleForm, Explode: true, } if err := q.HasParam(cfg); err == nil { if err := q.DecodeParam(cfg, func(d uri.Decoder) error { var paramsDotStopDatetimeVal time.Time if err := func() error { val, err := d.DecodeValue() if err != nil { return err } c, err := conv.ToDateTime(val) if err != nil { return err } paramsDotStopDatetimeVal = c return nil }(); err != nil { return err } params.StopDatetime.SetTo(paramsDotStopDatetimeVal) return nil }); err != nil { return err } } return nil }(); err != nil { return params, &ogenerrors.DecodeParamError{ Name: "stop_datetime", In: "query", Err: err, } } // Decode query: dataset. if err := func() error { cfg := uri.QueryParameterDecodingConfig{ Name: "dataset", Style: uri.QueryStyleForm, Explode: true, } if err := q.HasParam(cfg); err == nil { if err := q.DecodeParam(cfg, func(d uri.Decoder) error { var paramsDotDatasetVal time.Time if err := func() error { val, err := d.DecodeValue() if err != nil { return err } c, err := conv.ToDateTime(val) if err != nil { return err } paramsDotDatasetVal = c return nil }(); err != nil { return err } params.Dataset.SetTo(paramsDotDatasetVal) return nil }); err != nil { return err } } return nil }(); err != nil { return params, &ogenerrors.DecodeParamError{ Name: "dataset", In: "query", Err: err, } } return params, nil }