// Package swagger provides primitives to interact with the openapi HTTP API. // // Code generated by github.com/deepmap/oapi-codegen version v1.12.4 DO NOT EDIT. package swagger import ( "bytes" "compress/gzip" "encoding/base64" "fmt" "net/http" "net/url" "path" "strings" "github.com/deepmap/oapi-codegen/pkg/runtime" "github.com/getkin/kin-openapi/openapi3" "github.com/labstack/echo/v4" ) // ServerInterface represents all server handlers. type ServerInterface interface { // удалить собственный аккаунт // (DELETE /account) DeleteAccount(ctx echo.Context) error // Получение текущего аккаунта юзера // (GET /account) GetAccount(ctx echo.Context) error // Создать новый аккаунт // (POST /account) AddAccount(ctx echo.Context) error // Удалить аккаунт по айди // (DELETE /account/{userId}) DeleteDirectAccount(ctx echo.Context, userId string) error // Получить аккаунт по ID пользователя системы единой авторизации // (GET /account/{userId}) GetDirectAccount(ctx echo.Context, userId string) error // списко аккаунтов с пагинацией // (GET /accounts) PaginationAccounts(ctx echo.Context, params PaginationAccountsParams) error // Удаляем из корзины тариф // (DELETE /cart) RemoveFromCart(ctx echo.Context, params RemoveFromCartParams) error // Добавляем в корзину тариф // (PATCH /cart) Add2cart(ctx echo.Context, params Add2cartParams) error // оплатить козину // (POST /cart/pay) PayCart(ctx echo.Context) error // получить список одобренных валют // (GET /currencies) GetCurrencies(ctx echo.Context) error // обновляет список одобренных валют // (PUT /currencies) UpdateCurrencies(ctx echo.Context) error // Получение лога событий связанных с аккаунтом // (GET /history) GetHistory(ctx echo.Context, params GetHistoryParams) error // Публикация лога в истории // (POST /history) Add2history(ctx echo.Context) error // Запрос на получение ссылки на оплату // (GET /wallet) RequestMoney(ctx echo.Context, params RequestMoneyParams) error // Изменить валюту кошелька // (PATCH /wallet) ChangeCurrency(ctx echo.Context) error // Зачислить деньги на кошелёк // (POST /wallet) PutMoney(ctx echo.Context) error } // ServerInterfaceWrapper converts echo contexts to parameters. type ServerInterfaceWrapper struct { Handler ServerInterface } // DeleteAccount converts echo context to params. func (w *ServerInterfaceWrapper) DeleteAccount(ctx echo.Context) error { var err error ctx.Set(BearerScopes, []string{""}) // Invoke the callback with all the unmarshalled arguments err = w.Handler.DeleteAccount(ctx) return err } // GetAccount converts echo context to params. func (w *ServerInterfaceWrapper) GetAccount(ctx echo.Context) error { var err error ctx.Set(BearerScopes, []string{""}) // Invoke the callback with all the unmarshalled arguments err = w.Handler.GetAccount(ctx) return err } // AddAccount converts echo context to params. func (w *ServerInterfaceWrapper) AddAccount(ctx echo.Context) error { var err error ctx.Set(BearerScopes, []string{""}) // Invoke the callback with all the unmarshalled arguments err = w.Handler.AddAccount(ctx) return err } // DeleteDirectAccount converts echo context to params. func (w *ServerInterfaceWrapper) DeleteDirectAccount(ctx echo.Context) error { var err error // ------------- Path parameter "userId" ------------- var userId string err = runtime.BindStyledParameterWithLocation("simple", false, "userId", runtime.ParamLocationPath, ctx.Param("userId"), &userId) if err != nil { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter userId: %s", err)) } ctx.Set(BearerScopes, []string{""}) // Invoke the callback with all the unmarshalled arguments err = w.Handler.DeleteDirectAccount(ctx, userId) return err } // GetDirectAccount converts echo context to params. func (w *ServerInterfaceWrapper) GetDirectAccount(ctx echo.Context) error { var err error // ------------- Path parameter "userId" ------------- var userId string err = runtime.BindStyledParameterWithLocation("simple", false, "userId", runtime.ParamLocationPath, ctx.Param("userId"), &userId) if err != nil { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter userId: %s", err)) } ctx.Set(BearerScopes, []string{""}) // Invoke the callback with all the unmarshalled arguments err = w.Handler.GetDirectAccount(ctx, userId) return err } // PaginationAccounts converts echo context to params. func (w *ServerInterfaceWrapper) PaginationAccounts(ctx echo.Context) error { var err error // Parameter object where we will unmarshal all parameters from the context var params PaginationAccountsParams // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameter("form", false, false, "page", ctx.QueryParams(), ¶ms.Page) if err != nil { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter page: %s", err)) } // ------------- Optional query parameter "limit" ------------- err = runtime.BindQueryParameter("form", false, false, "limit", ctx.QueryParams(), ¶ms.Limit) if err != nil { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter limit: %s", err)) } // Invoke the callback with all the unmarshalled arguments err = w.Handler.PaginationAccounts(ctx, params) return err } // RemoveFromCart converts echo context to params. func (w *ServerInterfaceWrapper) RemoveFromCart(ctx echo.Context) error { var err error ctx.Set(BearerScopes, []string{""}) // Parameter object where we will unmarshal all parameters from the context var params RemoveFromCartParams // ------------- Required query parameter "id" ------------- err = runtime.BindQueryParameter("form", true, true, "id", ctx.QueryParams(), ¶ms.Id) if err != nil { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter id: %s", err)) } // Invoke the callback with all the unmarshalled arguments err = w.Handler.RemoveFromCart(ctx, params) return err } // Add2cart converts echo context to params. func (w *ServerInterfaceWrapper) Add2cart(ctx echo.Context) error { var err error ctx.Set(BearerScopes, []string{""}) // Parameter object where we will unmarshal all parameters from the context var params Add2cartParams // ------------- Required query parameter "id" ------------- err = runtime.BindQueryParameter("form", true, true, "id", ctx.QueryParams(), ¶ms.Id) if err != nil { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter id: %s", err)) } // Invoke the callback with all the unmarshalled arguments err = w.Handler.Add2cart(ctx, params) return err } // PayCart converts echo context to params. func (w *ServerInterfaceWrapper) PayCart(ctx echo.Context) error { var err error ctx.Set(BearerScopes, []string{""}) // Invoke the callback with all the unmarshalled arguments err = w.Handler.PayCart(ctx) return err } // GetCurrencies converts echo context to params. func (w *ServerInterfaceWrapper) GetCurrencies(ctx echo.Context) error { var err error // Invoke the callback with all the unmarshalled arguments err = w.Handler.GetCurrencies(ctx) return err } // UpdateCurrencies converts echo context to params. func (w *ServerInterfaceWrapper) UpdateCurrencies(ctx echo.Context) error { var err error ctx.Set(BearerScopes, []string{""}) // Invoke the callback with all the unmarshalled arguments err = w.Handler.UpdateCurrencies(ctx) return err } // GetHistory converts echo context to params. func (w *ServerInterfaceWrapper) GetHistory(ctx echo.Context) error { var err error ctx.Set(BearerScopes, []string{""}) // Parameter object where we will unmarshal all parameters from the context var params GetHistoryParams // ------------- Optional query parameter "page" ------------- err = runtime.BindQueryParameter("form", false, false, "page", ctx.QueryParams(), ¶ms.Page) if err != nil { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter page: %s", err)) } // ------------- Optional query parameter "limit" ------------- err = runtime.BindQueryParameter("form", false, false, "limit", ctx.QueryParams(), ¶ms.Limit) if err != nil { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter limit: %s", err)) } // Invoke the callback with all the unmarshalled arguments err = w.Handler.GetHistory(ctx, params) return err } // Add2history converts echo context to params. func (w *ServerInterfaceWrapper) Add2history(ctx echo.Context) error { var err error ctx.Set(BearerScopes, []string{""}) // Invoke the callback with all the unmarshalled arguments err = w.Handler.Add2history(ctx) return err } // RequestMoney converts echo context to params. func (w *ServerInterfaceWrapper) RequestMoney(ctx echo.Context) error { var err error ctx.Set(BearerScopes, []string{""}) // Parameter object where we will unmarshal all parameters from the context var params RequestMoneyParams // ------------- Required query parameter "cash" ------------- err = runtime.BindQueryParameter("form", true, true, "cash", ctx.QueryParams(), ¶ms.Cash) if err != nil { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter cash: %s", err)) } // Invoke the callback with all the unmarshalled arguments err = w.Handler.RequestMoney(ctx, params) return err } // ChangeCurrency converts echo context to params. func (w *ServerInterfaceWrapper) ChangeCurrency(ctx echo.Context) error { var err error ctx.Set(BearerScopes, []string{""}) // Invoke the callback with all the unmarshalled arguments err = w.Handler.ChangeCurrency(ctx) return err } // PutMoney converts echo context to params. func (w *ServerInterfaceWrapper) PutMoney(ctx echo.Context) error { var err error ctx.Set(BearerScopes, []string{""}) // Invoke the callback with all the unmarshalled arguments err = w.Handler.PutMoney(ctx) return err } // This is a simple interface which specifies echo.Route addition functions which // are present on both echo.Echo and echo.Group, since we want to allow using // either of them for path registration type EchoRouter interface { CONNECT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route DELETE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route GET(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route HEAD(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route OPTIONS(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route PATCH(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route POST(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route PUT(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route TRACE(path string, h echo.HandlerFunc, m ...echo.MiddlewareFunc) *echo.Route } // RegisterHandlers adds each server route to the EchoRouter. func RegisterHandlers(router EchoRouter, si ServerInterface) { RegisterHandlersWithBaseURL(router, si, "") } // Registers handlers, and prepends BaseURL to the paths, so that the paths // can be served under a prefix. func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL string) { wrapper := ServerInterfaceWrapper{ Handler: si, } router.DELETE(baseURL+"/account", wrapper.DeleteAccount) router.GET(baseURL+"/account", wrapper.GetAccount) router.POST(baseURL+"/account", wrapper.AddAccount) router.DELETE(baseURL+"/account/:userId", wrapper.DeleteDirectAccount) router.GET(baseURL+"/account/:userId", wrapper.GetDirectAccount) router.GET(baseURL+"/accounts", wrapper.PaginationAccounts) router.DELETE(baseURL+"/cart", wrapper.RemoveFromCart) router.PATCH(baseURL+"/cart", wrapper.Add2cart) router.POST(baseURL+"/cart/pay", wrapper.PayCart) router.GET(baseURL+"/currencies", wrapper.GetCurrencies) router.PUT(baseURL+"/currencies", wrapper.UpdateCurrencies) router.GET(baseURL+"/history", wrapper.GetHistory) router.POST(baseURL+"/history", wrapper.Add2history) router.GET(baseURL+"/wallet", wrapper.RequestMoney) router.PATCH(baseURL+"/wallet", wrapper.ChangeCurrency) router.POST(baseURL+"/wallet", wrapper.PutMoney) } // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ "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", "WkosduIbwox4dWH13wEAAP//CUifXPxCAAA=", } // GetSwagger returns the content of the embedded swagger specification file // or error if failed to decode func decodeSpec() ([]byte, error) { zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, "")) if err != nil { return nil, fmt.Errorf("error base64 decoding spec: %s", err) } zr, err := gzip.NewReader(bytes.NewReader(zipped)) if err != nil { return nil, fmt.Errorf("error decompressing spec: %s", err) } var buf bytes.Buffer _, err = buf.ReadFrom(zr) if err != nil { return nil, fmt.Errorf("error decompressing spec: %s", err) } return buf.Bytes(), nil } var rawSpec = decodeSpecCached() // a naive cached of a decoded swagger spec func decodeSpecCached() func() ([]byte, error) { data, err := decodeSpec() return func() ([]byte, error) { return data, err } } // Constructs a synthetic filesystem for resolving external references when loading openapi specifications. func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error) { var res = make(map[string]func() ([]byte, error)) if len(pathToFile) > 0 { res[pathToFile] = rawSpec } return res } // GetSwagger returns the Swagger specification corresponding to the generated code // in this file. The external references of Swagger specification are resolved. // The logic of resolving external references is tightly connected to "import-mapping" feature. // Externally referenced files must be embedded in the corresponding golang packages. // Urls can be supported but this task was out of the scope. func GetSwagger() (swagger *openapi3.T, err error) { var resolvePath = PathToRawSpec("") loader := openapi3.NewLoader() loader.IsExternalRefsAllowed = true loader.ReadFromURIFunc = func(loader *openapi3.Loader, url *url.URL) ([]byte, error) { var pathToFile = url.String() pathToFile = path.Clean(pathToFile) getSpec, ok := resolvePath[pathToFile] if !ok { err1 := fmt.Errorf("path not found: %s", pathToFile) return nil, err1 } return getSpec() } var specData []byte specData, err = rawSpec() if err != nil { return } swagger, err = loader.LoadFromData(specData) if err != nil { return } return }