// 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 // Получение недавних тарифов // (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 } // 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.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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", } // 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 }