// Package swagger provides primitives to interact with the openapi HTTP API. // // Code generated by github.com/deepmap/oapi-codegen/v2 version v2.0.0 DO NOT EDIT. package swagger import ( "bytes" "compress/gzip" "encoding/base64" "fmt" "net/http" "net/url" "path" "strings" "github.com/getkin/kin-openapi/openapi3" "github.com/labstack/echo/v4" "github.com/oapi-codegen/runtime" ) // ServerInterface represents all server handlers. type ServerInterface interface { // удалить собственный аккаунт // (DELETE /account) DeleteAccount(ctx echo.Context) error // Получение текущего аккаунта юзера // (GET /account) GetAccount(ctx echo.Context) error // Отредактировать аккаунт // (PATCH /account) ChangeAccount(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 // Выставление статуса верификации // (PATCH /account/{userId}) SetAccountVerificationStatus(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 // Расчет среднего времени жизни платящего клиента (LTV) // (POST /history/ltv) CalculateLTV(ctx echo.Context) error // Получение недавних тарифов // (GET /recent) GetRecentTariffs(ctx echo.Context) error // отправить акт проделанных работ на почту // (POST /sendReport) SendReport(ctx echo.Context) error // Изменить валюту кошелька // (PATCH /wallet) ChangeCurrency(ctx echo.Context) error // Запрос на получение ссылки на оплату // (POST /wallet) RequestMoney(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 unmarshaled 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 unmarshaled arguments err = w.Handler.GetAccount(ctx) return err } // ChangeAccount converts echo context to params. func (w *ServerInterfaceWrapper) ChangeAccount(ctx echo.Context) error { var err error ctx.Set(BearerScopes, []string{}) // Invoke the callback with all the unmarshaled arguments err = w.Handler.ChangeAccount(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 unmarshaled 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 unmarshaled 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 unmarshaled arguments err = w.Handler.GetDirectAccount(ctx, userId) return err } // SetAccountVerificationStatus converts echo context to params. func (w *ServerInterfaceWrapper) SetAccountVerificationStatus(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 unmarshaled arguments err = w.Handler.SetAccountVerificationStatus(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 unmarshaled 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 unmarshaled 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 unmarshaled 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 unmarshaled 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 unmarshaled 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 unmarshaled 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)) } // ------------- Optional query parameter "type" ------------- err = runtime.BindQueryParameter("form", false, false, "type", ctx.QueryParams(), ¶ms.Type) if err != nil { return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter type: %s", err)) } // Invoke the callback with all the unmarshaled arguments err = w.Handler.GetHistory(ctx, params) return err } // CalculateLTV converts echo context to params. func (w *ServerInterfaceWrapper) CalculateLTV(ctx echo.Context) error { var err error ctx.Set(BearerScopes, []string{}) // Invoke the callback with all the unmarshaled arguments err = w.Handler.CalculateLTV(ctx) return err } // GetRecentTariffs converts echo context to params. func (w *ServerInterfaceWrapper) GetRecentTariffs(ctx echo.Context) error { var err error ctx.Set(BearerScopes, []string{}) // Invoke the callback with all the unmarshaled arguments err = w.Handler.GetRecentTariffs(ctx) return err } // SendReport converts echo context to params. func (w *ServerInterfaceWrapper) SendReport(ctx echo.Context) error { var err error ctx.Set(BearerScopes, []string{}) // Invoke the callback with all the unmarshaled arguments err = w.Handler.SendReport(ctx) 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 unmarshaled arguments err = w.Handler.ChangeCurrency(ctx) return err } // RequestMoney converts echo context to params. func (w *ServerInterfaceWrapper) RequestMoney(ctx echo.Context) error { var err error ctx.Set(BearerScopes, []string{}) // Invoke the callback with all the unmarshaled arguments err = w.Handler.RequestMoney(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.PATCH(baseURL+"/account", wrapper.ChangeAccount) router.POST(baseURL+"/account", wrapper.AddAccount) router.DELETE(baseURL+"/account/:userId", wrapper.DeleteDirectAccount) router.GET(baseURL+"/account/:userId", wrapper.GetDirectAccount) router.PATCH(baseURL+"/account/:userId", wrapper.SetAccountVerificationStatus) 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/ltv", wrapper.CalculateLTV) router.GET(baseURL+"/recent", wrapper.GetRecentTariffs) router.POST(baseURL+"/sendReport", wrapper.SendReport) router.PATCH(baseURL+"/wallet", wrapper.ChangeCurrency) router.POST(baseURL+"/wallet", wrapper.RequestMoney) } // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ "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", "aC42/y8AAP//Dabnb25UAAA=", } // 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: %w", err) } zr, err := gzip.NewReader(bytes.NewReader(zipped)) if err != nil { return nil, fmt.Errorf("error decompressing spec: %w", err) } var buf bytes.Buffer _, err = buf.ReadFrom(zr) if err != nil { return nil, fmt.Errorf("error decompressing spec: %w", 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) { 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) { resolvePath := PathToRawSpec("") loader := openapi3.NewLoader() loader.IsExternalRefsAllowed = true loader.ReadFromURIFunc = func(loader *openapi3.Loader, url *url.URL) ([]byte, error) { 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 }