// 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{ "H4sIAAAAAAAC/+xbW28bR7L+K4055yHBoSjKUY4TvTl2ck4WWCBI1siDLWxGZFOahJxhZoZJtIYAUXSs", "BFKkeJFFgsXa3iQL7ONSFGmNeNNfqP5Hi6rumem5UPfI8iYvNkX2TFdXV3391aUfGGWn3nBsbvuesfDA", "8MorvG7Sx1vlstO0ffzYcJ0Gd32L0w9/tCr4H//CrDdq3Fgw3ijdrM5Vb95cKlffmCtXbr755vxrb5bm", "5oyC4a82cITnu5a9bKwVjLLp+omn7x33+JSfbhiLBcPyeZ3kycyhvjBd11ylOV1u+rxyiyauOm7d9I0F", "o2L6fMa36jxPzAqvcZ8n11k1ax6Pxi45To2btjb4LO9vNipnFanpcffdC2j+c7NW4zTff7u8aiwY/zUb", "7/2s2vjZD+WotbWC4fJPm5aLSrhHex6JoHYxemWsLl3X+iIXI3mcpY952Ud53nZdx81aV517nrnMk+vE", "iZnt+KzqNO1K3uo83/Sb3m2nknxyvjRfiPVr2f7/zsdPW7bPl7mbWWwZ31KIJMkT/v8tz3fc1az4Zade", "53bSxA2xy8Q3YgMmTLSgB30YQgeGDI5ggt/CSLSZ2KQB8zdyveb6WfBFQMBrSkUuPDAq3Cu7VsO3HNtY", "MOBfpBQYQIfBGPoMRjCBfdFmcCTWoQ89+nkIE3gOgdgQ2wWGg2EAAY7eE23oibbYYOIhBDAU22JDrIst", "eiuDQLRQyWIdAggKUv/fRDsQTYG7sw8dscOgG24cUxP35bCJfBNOPoQO/iG2Gf23juLjfrbYx55jFxmD", "H2APh/ZgKHaluM+hh+tCg9iAAI5wuQfQgSMUEQIGExhDB62lCxOxWzQKsaYfGL7pWtWqdz7snDMW1wrT", "MPOBwe1mHV/sNctl7nnVZu09c5UsGq2kXLNsXom/QeNwmn78xVJz9bbEBq+55KmNfduuoBPFtpL38hcP", "kSkUSCIejT0Z6AoRAMRWnocfH0ZgnIIP01vJcYsfRRtGMIIOqzs2X0Vj7JOxdtFgxWMYo72gdZHZbEAf", "bVB8DQEcMvq4Llq6Ec2VbpbmToGMBaPcdF1ul1dzpPopdxoGXUQ3sSM2xJY+p/H+3bfydo2WlPP676AP", "Y7EN++gQ0h3EJvTFBvpqFx1pgnqAQ3Qp8WWRwT/Jl/fI39HJIz2JFj4rHosNHKmgpQsTOIAxBOSSQ+mi", "ffwN9hkE6jdE6AHCCnSKElUG6KJiXbShDyPRIp9Gj+3BGCaoiGj90C+EriyhCaXH38eIUbSBY5rvsMCU", "IAqK+uKxklLBITzH2c6zhenDLdzPgjS2UP9ZK0Wg5uWma/mrHyA7kBb6FjddTuf2En16J5z/dx/+gRxE", "38O3bZ+7zF/hzHc+4Tb73PJX6M+P5GsW2Ees4fKq9UWB8eJykd1X72fmUrnC5268Nv/6fQPhj/gJnVpy", "/kjaFd9vGGsorGVXnRwzegp7GkbTfnbJilryE22BxPMAERcNpks43GEz8aEgR3Sgi4cAbZbanKHYhgOY", "4K6T4w3FDhMPRRvGMBCP0ILQAFAEMlmxDgcQwBiNNJDffEVPbeM2FwlUfXKX203Pd+rcZTMJscKDRLRJ", "Nk0ieboMUTQYk7AjCIyC8Rl3PamMuWKpWEKfcxrcNhuWsWC8ViwVEQwbpr9CGzxrxsRfwl2OUnHhI+iL", "TehIm8YjGN2wjTMz6S8wlMgktshyEedMfAFCtHGHXh0GGWijXsOxPWlkN0olSaZsX5Eps9GoWWV6fBbP", "1ThYOYnRhlOQjSSXIdqiRRDxFbluP5I73uHEuqCDupsvzV2acJIE54gGT6CPexvxFWViME44prFwL3bJ", "e4tri3js1OsmUlMjWk2g6AmBo2b2YgvhKrFEtD9zmbhFaAfIF5Z5Hlv7gdSnXADxkLxqN0LfA0RbQsY+", "EztwQEbcIVbVUmQMIbRdZPAtHEIPAtqJAAaJ4XKKdmxsARwwgvoBraNTkH5EqpJrCs/HHnQQ9aVUXUmy", "9hWD7OLjzGz6K45r/Yl2L2Ol/8f9a2aimjaUkV4Lm0QR5q9AhJ/IXCV3ngK/xIL6YuP0jgLP0jrVOVRf", "TpZCAs1Cp/hMw/HynOZHoh3KMBntajfHESOYj6YpIC1ooTszAvdIDX3xdUQX9sQWGnfGkG9VKtcNa1uh", "Iv4TsFbbVqIZ07Y111bWCtGpO/tAhhxrxx6/f0P7RmClXSdYlzgbwEhO2kWm05Ji0L8jiZiSZ0wwsJZU", "t4fMknjEqKBRC+0YzNCKKWf5HcvlZQ0uG6Zr1rnPXY80l1zCu3ey+40UzlggJmIUDNush6kfisBiEuu7", "TV7QNj0dxy2+GAuHn19KNnFVyP2Ezu4kck0B8DO43c8JipOG0CMJ3EQtzsRsfmEHSx/i+JUEwrHYwgB1", "knS5fh4x+c3fTqRGv3nc5XtczJWm+xxa2zRylqD+W4w8JAhTJ0mNdSh+Dk46M8no8v04HTqQxQREPQZp", "45igT1OeqU0ZlwPpkCSYSu0SVRGPoM/+hzFCBaSHfZmLQhDapFwTBliTnNdnvPg9c9my6c9b4VJO8GN4", "oiLv9ZRMYotySB3cF5UMFC02RxmjRo3qIir9T07/aZO7q7HXN8xlbug+XuFVs1nzjYW5vIxSWioS42CK", "XKcUoWbVLX+KDKVSjhQXhZ1k5lW3pai0eCpkyhYcfcc3a++Zy/LNccYuV5eZtNt5YsCM0vOsj3w8zg6E", "rjDItVW0HjiicFna0yM6jQ6nOmNY2Y1Ja9LW3+d15zP+juvUVYUgZed5NmEdfxCdK8v/wk4rjQxOZA4j", "mQ/8tZ1NBFfEzfowjo+pQ/qIcomHZyeCYhfPlTz16q+NbZislqJ10y/nlV6epOkfnaJU5usSr1NlSFW/", "zV0GeidlEuTZIDNleSH6jfKv0jW+Qw1rmexJWN+Jdq/9m3NcxDk0BYcOklbwse4R4vtsw5Q9D7mprRkG", "T+lI6kIgq2EM30ylqzHV28Q6DIgjQEB5LJgQY6JMrdhmrxCDUJX1fUobUwPAc/kuapcgz9sP0yx4ZD2E", "gWi/queAZSk0rrhR1kw9QWV2VcHfiuqIY6pljMWWTExFxRYcokK2XspIgyjRTesdUp4wUKFhlhPnceH7", "9gyDP5N4IUeNc3x6MbKbLhT1WVySojVvkopmZH0rrAspgt49je5JMT3JHxUNlqRuomtP6mpANdUNWdlJ", "1czQtjKqCtsmUqqi9f8lZ71jveQWr6/AFObK+ilV876CAPao4wICjbnjz/dtNoWZJ9+/I76GQHyJKC21", "QeOU3qJS7n2bxH2a1a9mUlJzFcsjsEuoRj29qaKfIFKoBnLZ+CBsp0Ck557/llNZvQDJjRskstkBlfrb", "kJFieKBRNT2p1qSDtBmV4aWFbEXtOARVKnWtjcDdT/QEnLs9Qy0lp2wtR77gDDchULzsznXkeqc+PrTt", "i2Egttm8w0J2GSizU7F5JoN1Ox51wS3T2klll8ndD+4YBeP2rTtnaRU9b+gVBVIdDTFS4Zb2YFSO1VIR", "EwmaYU+IzALG79KUHPZvEGlt5ij2LnUjpXR7PvS4LLWuvTTbiweXzOkOT97gK/Lhu6atitS8ciavjZaC", "pC+T/TqPyaFvr8S9r9McO2yPfSmTWfD3lz6Z5fKy41ZOn8sK9+uXz2WdJmmvGlW2iC4cvlxHZbaTgHpN", "9mU3r7Ysau4Vu2GWmbwP+WM6ETfSHDH0PL27IJtDWImc77ywfypT+WV5ljbNsSbUkVFYm5r8qJNTPJKh", "mVI7ms/rlyjYdPN5GsYi1LOk+k/TkkFwFmM6Zl0UniQa2nMNBQE7vvmRWySZYfAPescobmtNBTWD4zm/", "jHuyZdKRbMGVcdae+IZigxEEFAo900szOGPUmUkf062Y+ow4IbX0bsFQxRqyyTYe0070hLXFjkyo9GQe", "IW4OIzo7pY0zE469L/3p99Qwe9LZ9te8wDOKcY38c0O15E7P6+nHyBUcJDXL/iSZTlzx/Ya3MDu77DjL", "NV50m7mR2pnOAVlQTxhcrKcrc98f9RZb3djinAMMExmHM3jy9+kUQX4JJ7ToIGvPmncrfz4ua/0sasAM", "p5UpxUwueyFKanRlHwV1Ya6HjpDNbBPgxmmRTppHdlLOrSLGqLsB5aD+zaR7l5fcKnuFWqZ6MokU5aMQ", "bsbqQpC8M7MZpn+OVNMV/tJ/Vc0c3YxQPd3afYR2puGayaLvBLoSJLSxRYY+rAY/RsY8pgxpmGwTj+gm", "10SmdFS8QMacSJ4k+vJUPzkhzJhC6ENC1yjFFfWhM7n1tA07VGY+DIcR4qWvL0nCrLJskrvSvgzJgNaj", "drTwIoS8TRHQrvbjDlla1Fjek8jg3+0V014OI8vVS8tK6VdMYqCRId7xSaA4Mrk+aaAMPREt1QvUSVyN", "yZiiJLqlK2uizXryWEbACXf+VRVenuUSgW2lGa0icwbo/0HGkhRAynT8MXA0BeXzO4kJ5NN1neS5omKs", "AxVMRzHJgCHTYJKirsvzJnM2hPgZZu7VD3TdSUuM5y0ilcZuRpzpkhBDXZPTLkMRGzrjfbYTwOaSLxQq", "bqddwLrmOeyJvCU3ppJUZDqJMk1H3/zHMLjOGHYVAPJtsu53Adj4Xma/ZHEs5FCpC5Ep3edgB3Fx+WUG", "PtJ96SoEMaO+pswTqmQm2nAUUrnkXc8wiglNPOcdWhmEkCIKfFx/2nB9hWq4WmDOA1pILHbjB8KIeG1x", "7d8BAAD//xnIgYj0QgAA", } // 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 }