// Code generated by ogen, DO NOT EDIT. package api import ( "net/http" "net/url" "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" ) // GetUserParams is parameters of getUser operation. type GetUserParams struct { UserID int64 } func unpackGetUserParams(packed middleware.Parameters) (params GetUserParams) { { key := middleware.ParameterKey{ Name: "UserID", In: "path", } params.UserID = packed[key].(int64) } return params } func decodeGetUserParams(args [1]string, argsEscaped bool, r *http.Request) (params GetUserParams, _ error) { // Decode path: UserID. 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: "UserID", Value: param, Style: uri.PathStyleSimple, Explode: false, }) if err := func() error { val, err := d.DecodeValue() if err != nil { return err } c, err := conv.ToInt64(val) if err != nil { return err } params.UserID = c return nil }(); err != nil { return err } } else { return validate.ErrFieldRequired } return nil }(); err != nil { return params, &ogenerrors.DecodeParamError{ Name: "UserID", In: "path", Err: err, } } return params, nil } // GetUserRankParams is parameters of getUserRank operation. type GetUserRankParams struct { UserID int64 StyleID int32 GameID int32 ModeID int32 } func unpackGetUserRankParams(packed middleware.Parameters) (params GetUserRankParams) { { key := middleware.ParameterKey{ Name: "UserID", In: "path", } params.UserID = packed[key].(int64) } { key := middleware.ParameterKey{ Name: "StyleID", In: "query", } params.StyleID = packed[key].(int32) } { key := middleware.ParameterKey{ Name: "GameID", In: "query", } params.GameID = packed[key].(int32) } { key := middleware.ParameterKey{ Name: "ModeID", In: "query", } params.ModeID = packed[key].(int32) } return params } func decodeGetUserRankParams(args [1]string, argsEscaped bool, r *http.Request) (params GetUserRankParams, _ error) { q := uri.NewQueryDecoder(r.URL.Query()) // Decode path: UserID. 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: "UserID", Value: param, Style: uri.PathStyleSimple, Explode: false, }) if err := func() error { val, err := d.DecodeValue() if err != nil { return err } c, err := conv.ToInt64(val) if err != nil { return err } params.UserID = c return nil }(); err != nil { return err } } else { return validate.ErrFieldRequired } return nil }(); err != nil { return params, &ogenerrors.DecodeParamError{ Name: "UserID", In: "path", Err: err, } } // Decode query: StyleID. if err := func() error { cfg := uri.QueryParameterDecodingConfig{ Name: "StyleID", 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.ToInt32(val) if err != nil { return err } params.StyleID = c return nil }); err != nil { return err } } else { return validate.ErrFieldRequired } return nil }(); err != nil { return params, &ogenerrors.DecodeParamError{ Name: "StyleID", In: "query", Err: err, } } // Decode query: GameID. if err := func() error { cfg := uri.QueryParameterDecodingConfig{ Name: "GameID", 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.ToInt32(val) if err != nil { return err } params.GameID = c return nil }); err != nil { return err } } else { return validate.ErrFieldRequired } return nil }(); err != nil { return params, &ogenerrors.DecodeParamError{ Name: "GameID", In: "query", Err: err, } } // Decode query: ModeID. if err := func() error { cfg := uri.QueryParameterDecodingConfig{ Name: "ModeID", 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.ToInt32(val) if err != nil { return err } params.ModeID = c return nil }); err != nil { return err } } else { return validate.ErrFieldRequired } return nil }(); err != nil { return params, &ogenerrors.DecodeParamError{ Name: "ModeID", In: "query", Err: err, } } return params, nil } // ListRanksParams is parameters of listRanks operation. type ListRanksParams struct { Page Pagination Filter OptRankFilter } func unpackListRanksParams(packed middleware.Parameters) (params ListRanksParams) { { key := middleware.ParameterKey{ Name: "page", In: "query", } params.Page = packed[key].(Pagination) } { key := middleware.ParameterKey{ Name: "filter", In: "query", } if v, ok := packed[key]; ok { params.Filter = v.(OptRankFilter) } } return params } func decodeListRanksParams(args [0]string, argsEscaped bool, r *http.Request) (params ListRanksParams, _ error) { q := uri.NewQueryDecoder(r.URL.Query()) // Decode query: page. if err := func() error { cfg := uri.QueryParameterDecodingConfig{ Name: "page", Style: uri.QueryStyleForm, Explode: true, Fields: []uri.QueryParameterObjectField{{Name: "Page", Required: true}, {Name: "Limit", Required: true}}, } if err := q.HasParam(cfg); err == nil { if err := q.DecodeParam(cfg, func(d uri.Decoder) error { return params.Page.DecodeURI(d) }); err != nil { return err } if err := func() error { if err := params.Page.Validate(); err != nil { return err } return nil }(); err != nil { return err } } else { return validate.ErrFieldRequired } return nil }(); err != nil { return params, &ogenerrors.DecodeParamError{ Name: "page", In: "query", Err: err, } } // Decode query: filter. if err := func() error { cfg := uri.QueryParameterDecodingConfig{ Name: "filter", Style: uri.QueryStyleForm, Explode: true, Fields: []uri.QueryParameterObjectField{{Name: "StyleID", Required: false}, {Name: "GameID", Required: false}, {Name: "ModeID", Required: false}, {Name: "Sort", Required: false}}, } if err := q.HasParam(cfg); err == nil { if err := q.DecodeParam(cfg, func(d uri.Decoder) error { var paramsDotFilterVal RankFilter if err := func() error { return paramsDotFilterVal.DecodeURI(d) }(); err != nil { return err } params.Filter.SetTo(paramsDotFilterVal) return nil }); err != nil { return err } } return nil }(); err != nil { return params, &ogenerrors.DecodeParamError{ Name: "filter", In: "query", Err: err, } } return params, nil } // ListTimesParams is parameters of listTimes operation. type ListTimesParams struct { Page Pagination Filter OptTimeFilter } func unpackListTimesParams(packed middleware.Parameters) (params ListTimesParams) { { key := middleware.ParameterKey{ Name: "page", In: "query", } params.Page = packed[key].(Pagination) } { key := middleware.ParameterKey{ Name: "filter", In: "query", } if v, ok := packed[key]; ok { params.Filter = v.(OptTimeFilter) } } return params } func decodeListTimesParams(args [0]string, argsEscaped bool, r *http.Request) (params ListTimesParams, _ error) { q := uri.NewQueryDecoder(r.URL.Query()) // Decode query: page. if err := func() error { cfg := uri.QueryParameterDecodingConfig{ Name: "page", Style: uri.QueryStyleForm, Explode: true, Fields: []uri.QueryParameterObjectField{{Name: "Page", Required: true}, {Name: "Limit", Required: true}}, } if err := q.HasParam(cfg); err == nil { if err := q.DecodeParam(cfg, func(d uri.Decoder) error { return params.Page.DecodeURI(d) }); err != nil { return err } if err := func() error { if err := params.Page.Validate(); err != nil { return err } return nil }(); err != nil { return err } } else { return validate.ErrFieldRequired } return nil }(); err != nil { return params, &ogenerrors.DecodeParamError{ Name: "page", In: "query", Err: err, } } // Decode query: filter. if err := func() error { cfg := uri.QueryParameterDecodingConfig{ Name: "filter", Style: uri.QueryStyleForm, Explode: true, Fields: []uri.QueryParameterObjectField{{Name: "ID", Required: false}, {Name: "Time", Required: false}, {Name: "UserID", Required: false}, {Name: "MapID", Required: false}, {Name: "StyleID", Required: false}, {Name: "ModeID", Required: false}, {Name: "GameID", Required: false}}, } if err := q.HasParam(cfg); err == nil { if err := q.DecodeParam(cfg, func(d uri.Decoder) error { var paramsDotFilterVal TimeFilter if err := func() error { return paramsDotFilterVal.DecodeURI(d) }(); err != nil { return err } params.Filter.SetTo(paramsDotFilterVal) return nil }); err != nil { return err } } return nil }(); err != nil { return params, &ogenerrors.DecodeParamError{ Name: "filter", In: "query", Err: err, } } return params, nil }