// 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 // 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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", } // 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 }