feat: polish & windviz & deploy

This commit is contained in:
Anatoly Antonov 2026-05-30 06:29:39 +09:00
parent 81b8e763bd
commit 465ad00f7b
78 changed files with 20622 additions and 2154 deletions

View file

@ -4,6 +4,7 @@ package rest
import (
"net/http"
"net/url"
"time"
"github.com/go-faster/errors"
@ -14,6 +15,791 @@ import (
"github.com/ogen-go/ogen/validate"
)
// CancelDatasetJobParams is parameters of cancelDatasetJob operation.
type CancelDatasetJobParams struct {
ID string
}
func unpackCancelDatasetJobParams(packed middleware.Parameters) (params CancelDatasetJobParams) {
{
key := middleware.ParameterKey{
Name: "id",
In: "path",
}
params.ID = packed[key].(string)
}
return params
}
func decodeCancelDatasetJobParams(args [1]string, argsEscaped bool, r *http.Request) (params CancelDatasetJobParams, _ error) {
// Decode path: id.
if err := func() error {
param := args[0]
if argsEscaped {
unescaped, err := url.PathUnescape(args[0])
if err != nil {
return errors.Wrap(err, "unescape path")
}
param = unescaped
}
if len(param) > 0 {
d := uri.NewPathDecoder(uri.PathDecoderConfig{
Param: "id",
Value: param,
Style: uri.PathStyleSimple,
Explode: false,
})
if err := func() error {
val, err := d.DecodeValue()
if err != nil {
return err
}
c, err := conv.ToString(val)
if err != nil {
return err
}
params.ID = c
return nil
}(); err != nil {
return err
}
} else {
return validate.ErrFieldRequired
}
return nil
}(); err != nil {
return params, &ogenerrors.DecodeParamError{
Name: "id",
In: "path",
Err: err,
}
}
return params, nil
}
// CancelPredictionJobParams is parameters of cancelPredictionJob operation.
type CancelPredictionJobParams struct {
ID string
}
func unpackCancelPredictionJobParams(packed middleware.Parameters) (params CancelPredictionJobParams) {
{
key := middleware.ParameterKey{
Name: "id",
In: "path",
}
params.ID = packed[key].(string)
}
return params
}
func decodeCancelPredictionJobParams(args [1]string, argsEscaped bool, r *http.Request) (params CancelPredictionJobParams, _ error) {
// Decode path: id.
if err := func() error {
param := args[0]
if argsEscaped {
unescaped, err := url.PathUnescape(args[0])
if err != nil {
return errors.Wrap(err, "unescape path")
}
param = unescaped
}
if len(param) > 0 {
d := uri.NewPathDecoder(uri.PathDecoderConfig{
Param: "id",
Value: param,
Style: uri.PathStyleSimple,
Explode: false,
})
if err := func() error {
val, err := d.DecodeValue()
if err != nil {
return err
}
c, err := conv.ToString(val)
if err != nil {
return err
}
params.ID = c
return nil
}(); err != nil {
return err
}
} else {
return validate.ErrFieldRequired
}
return nil
}(); err != nil {
return params, &ogenerrors.DecodeParamError{
Name: "id",
In: "path",
Err: err,
}
}
return params, nil
}
// DeleteDatasetParams is parameters of deleteDataset operation.
type DeleteDatasetParams struct {
Name string
}
func unpackDeleteDatasetParams(packed middleware.Parameters) (params DeleteDatasetParams) {
{
key := middleware.ParameterKey{
Name: "name",
In: "path",
}
params.Name = packed[key].(string)
}
return params
}
func decodeDeleteDatasetParams(args [1]string, argsEscaped bool, r *http.Request) (params DeleteDatasetParams, _ error) {
// Decode path: name.
if err := func() error {
param := args[0]
if argsEscaped {
unescaped, err := url.PathUnescape(args[0])
if err != nil {
return errors.Wrap(err, "unescape path")
}
param = unescaped
}
if len(param) > 0 {
d := uri.NewPathDecoder(uri.PathDecoderConfig{
Param: "name",
Value: param,
Style: uri.PathStyleSimple,
Explode: false,
})
if err := func() error {
val, err := d.DecodeValue()
if err != nil {
return err
}
c, err := conv.ToString(val)
if err != nil {
return err
}
params.Name = c
return nil
}(); err != nil {
return err
}
} else {
return validate.ErrFieldRequired
}
return nil
}(); err != nil {
return params, &ogenerrors.DecodeParamError{
Name: "name",
In: "path",
Err: err,
}
}
return params, nil
}
// GetDatasetJobParams is parameters of getDatasetJob operation.
type GetDatasetJobParams struct {
ID string
}
func unpackGetDatasetJobParams(packed middleware.Parameters) (params GetDatasetJobParams) {
{
key := middleware.ParameterKey{
Name: "id",
In: "path",
}
params.ID = packed[key].(string)
}
return params
}
func decodeGetDatasetJobParams(args [1]string, argsEscaped bool, r *http.Request) (params GetDatasetJobParams, _ error) {
// Decode path: id.
if err := func() error {
param := args[0]
if argsEscaped {
unescaped, err := url.PathUnescape(args[0])
if err != nil {
return errors.Wrap(err, "unescape path")
}
param = unescaped
}
if len(param) > 0 {
d := uri.NewPathDecoder(uri.PathDecoderConfig{
Param: "id",
Value: param,
Style: uri.PathStyleSimple,
Explode: false,
})
if err := func() error {
val, err := d.DecodeValue()
if err != nil {
return err
}
c, err := conv.ToString(val)
if err != nil {
return err
}
params.ID = c
return nil
}(); err != nil {
return err
}
} else {
return validate.ErrFieldRequired
}
return nil
}(); err != nil {
return params, &ogenerrors.DecodeParamError{
Name: "id",
In: "path",
Err: err,
}
}
return params, nil
}
// GetPredictionJobParams is parameters of getPredictionJob operation.
type GetPredictionJobParams struct {
ID string
}
func unpackGetPredictionJobParams(packed middleware.Parameters) (params GetPredictionJobParams) {
{
key := middleware.ParameterKey{
Name: "id",
In: "path",
}
params.ID = packed[key].(string)
}
return params
}
func decodeGetPredictionJobParams(args [1]string, argsEscaped bool, r *http.Request) (params GetPredictionJobParams, _ error) {
// Decode path: id.
if err := func() error {
param := args[0]
if argsEscaped {
unescaped, err := url.PathUnescape(args[0])
if err != nil {
return errors.Wrap(err, "unescape path")
}
param = unescaped
}
if len(param) > 0 {
d := uri.NewPathDecoder(uri.PathDecoderConfig{
Param: "id",
Value: param,
Style: uri.PathStyleSimple,
Explode: false,
})
if err := func() error {
val, err := d.DecodeValue()
if err != nil {
return err
}
c, err := conv.ToString(val)
if err != nil {
return err
}
params.ID = c
return nil
}(); err != nil {
return err
}
} else {
return validate.ErrFieldRequired
}
return nil
}(); err != nil {
return params, &ogenerrors.DecodeParamError{
Name: "id",
In: "path",
Err: err,
}
}
return params, nil
}
// GetWindFieldParams is parameters of getWindField operation.
type GetWindFieldParams struct {
Time OptDateTime `json:",omitempty,omitzero"`
Altitude OptFloat64 `json:",omitempty,omitzero"`
MinLat OptFloat64 `json:",omitempty,omitzero"`
MaxLat OptFloat64 `json:",omitempty,omitzero"`
MinLng OptFloat64 `json:",omitempty,omitzero"`
MaxLng OptFloat64 `json:",omitempty,omitzero"`
Step OptFloat64 `json:",omitempty,omitzero"`
}
func unpackGetWindFieldParams(packed middleware.Parameters) (params GetWindFieldParams) {
{
key := middleware.ParameterKey{
Name: "time",
In: "query",
}
if v, ok := packed[key]; ok {
params.Time = v.(OptDateTime)
}
}
{
key := middleware.ParameterKey{
Name: "altitude",
In: "query",
}
if v, ok := packed[key]; ok {
params.Altitude = v.(OptFloat64)
}
}
{
key := middleware.ParameterKey{
Name: "min_lat",
In: "query",
}
if v, ok := packed[key]; ok {
params.MinLat = v.(OptFloat64)
}
}
{
key := middleware.ParameterKey{
Name: "max_lat",
In: "query",
}
if v, ok := packed[key]; ok {
params.MaxLat = v.(OptFloat64)
}
}
{
key := middleware.ParameterKey{
Name: "min_lng",
In: "query",
}
if v, ok := packed[key]; ok {
params.MinLng = v.(OptFloat64)
}
}
{
key := middleware.ParameterKey{
Name: "max_lng",
In: "query",
}
if v, ok := packed[key]; ok {
params.MaxLng = v.(OptFloat64)
}
}
{
key := middleware.ParameterKey{
Name: "step",
In: "query",
}
if v, ok := packed[key]; ok {
params.Step = v.(OptFloat64)
}
}
return params
}
func decodeGetWindFieldParams(args [0]string, argsEscaped bool, r *http.Request) (params GetWindFieldParams, _ error) {
q := uri.NewQueryDecoder(r.URL.Query())
// Decode query: time.
if err := func() error {
cfg := uri.QueryParameterDecodingConfig{
Name: "time",
Style: uri.QueryStyleForm,
Explode: true,
}
if err := q.HasParam(cfg); err == nil {
if err := q.DecodeParam(cfg, func(d uri.Decoder) error {
var paramsDotTimeVal 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
}
paramsDotTimeVal = c
return nil
}(); err != nil {
return err
}
params.Time.SetTo(paramsDotTimeVal)
return nil
}); err != nil {
return err
}
}
return nil
}(); err != nil {
return params, &ogenerrors.DecodeParamError{
Name: "time",
In: "query",
Err: err,
}
}
// Decode query: altitude.
if err := func() error {
cfg := uri.QueryParameterDecodingConfig{
Name: "altitude",
Style: uri.QueryStyleForm,
Explode: true,
}
if err := q.HasParam(cfg); err == nil {
if err := q.DecodeParam(cfg, func(d uri.Decoder) error {
var paramsDotAltitudeVal float64
if err := func() error {
val, err := d.DecodeValue()
if err != nil {
return err
}
c, err := conv.ToFloat64(val)
if err != nil {
return err
}
paramsDotAltitudeVal = c
return nil
}(); err != nil {
return err
}
params.Altitude.SetTo(paramsDotAltitudeVal)
return nil
}); err != nil {
return err
}
if err := func() error {
if value, ok := params.Altitude.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: "altitude",
In: "query",
Err: err,
}
}
// Decode query: min_lat.
if err := func() error {
cfg := uri.QueryParameterDecodingConfig{
Name: "min_lat",
Style: uri.QueryStyleForm,
Explode: true,
}
if err := q.HasParam(cfg); err == nil {
if err := q.DecodeParam(cfg, func(d uri.Decoder) error {
var paramsDotMinLatVal float64
if err := func() error {
val, err := d.DecodeValue()
if err != nil {
return err
}
c, err := conv.ToFloat64(val)
if err != nil {
return err
}
paramsDotMinLatVal = c
return nil
}(); err != nil {
return err
}
params.MinLat.SetTo(paramsDotMinLatVal)
return nil
}); err != nil {
return err
}
if err := func() error {
if value, ok := params.MinLat.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: "min_lat",
In: "query",
Err: err,
}
}
// Decode query: max_lat.
if err := func() error {
cfg := uri.QueryParameterDecodingConfig{
Name: "max_lat",
Style: uri.QueryStyleForm,
Explode: true,
}
if err := q.HasParam(cfg); err == nil {
if err := q.DecodeParam(cfg, func(d uri.Decoder) error {
var paramsDotMaxLatVal float64
if err := func() error {
val, err := d.DecodeValue()
if err != nil {
return err
}
c, err := conv.ToFloat64(val)
if err != nil {
return err
}
paramsDotMaxLatVal = c
return nil
}(); err != nil {
return err
}
params.MaxLat.SetTo(paramsDotMaxLatVal)
return nil
}); err != nil {
return err
}
if err := func() error {
if value, ok := params.MaxLat.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: "max_lat",
In: "query",
Err: err,
}
}
// Decode query: min_lng.
if err := func() error {
cfg := uri.QueryParameterDecodingConfig{
Name: "min_lng",
Style: uri.QueryStyleForm,
Explode: true,
}
if err := q.HasParam(cfg); err == nil {
if err := q.DecodeParam(cfg, func(d uri.Decoder) error {
var paramsDotMinLngVal float64
if err := func() error {
val, err := d.DecodeValue()
if err != nil {
return err
}
c, err := conv.ToFloat64(val)
if err != nil {
return err
}
paramsDotMinLngVal = c
return nil
}(); err != nil {
return err
}
params.MinLng.SetTo(paramsDotMinLngVal)
return nil
}); err != nil {
return err
}
if err := func() error {
if value, ok := params.MinLng.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: "min_lng",
In: "query",
Err: err,
}
}
// Decode query: max_lng.
if err := func() error {
cfg := uri.QueryParameterDecodingConfig{
Name: "max_lng",
Style: uri.QueryStyleForm,
Explode: true,
}
if err := q.HasParam(cfg); err == nil {
if err := q.DecodeParam(cfg, func(d uri.Decoder) error {
var paramsDotMaxLngVal float64
if err := func() error {
val, err := d.DecodeValue()
if err != nil {
return err
}
c, err := conv.ToFloat64(val)
if err != nil {
return err
}
paramsDotMaxLngVal = c
return nil
}(); err != nil {
return err
}
params.MaxLng.SetTo(paramsDotMaxLngVal)
return nil
}); err != nil {
return err
}
if err := func() error {
if value, ok := params.MaxLng.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: "max_lng",
In: "query",
Err: err,
}
}
// Decode query: step.
if err := func() error {
cfg := uri.QueryParameterDecodingConfig{
Name: "step",
Style: uri.QueryStyleForm,
Explode: true,
}
if err := q.HasParam(cfg); err == nil {
if err := q.DecodeParam(cfg, func(d uri.Decoder) error {
var paramsDotStepVal float64
if err := func() error {
val, err := d.DecodeValue()
if err != nil {
return err
}
c, err := conv.ToFloat64(val)
if err != nil {
return err
}
paramsDotStepVal = c
return nil
}(); err != nil {
return err
}
params.Step.SetTo(paramsDotStepVal)
return nil
}); err != nil {
return err
}
if err := func() error {
if value, ok := params.Step.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: "step",
In: "query",
Err: err,
}
}
return params, nil
}
// PerformPredictionParams is parameters of performPrediction operation.
type PerformPredictionParams struct {
LaunchLatitude float64