customer/internal/interface/swagger/api.gen.go
2023-09-14 10:07:28 +00:00

516 lines
20 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Package swagger provides primitives to interact with the openapi HTTP API.
//
// Code generated by github.com/deepmap/oapi-codegen version v1.15.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
// Изменить валюту кошелька
// (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(), &params.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(), &params.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(), &params.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(), &params.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(), &params.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(), &params.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(), &params.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
}
// 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.PATCH(baseURL+"/wallet", wrapper.ChangeCurrency)
router.POST(baseURL+"/wallet", wrapper.RequestMoney)
}
// Base64 encoded, gzipped, json marshaled Swagger object
var swaggerSpec = []string{
"H4sIAAAAAAAC/+xbbW8bR5L+K425+5DgxhIly+dY32w5ufMBdoI4dmBYQjIim9LE5Aw9M4yjMwiIYmLH",
"kGOfbwOskY2dzQuw33YpSrQoiaT+QvU/WlR1z3tTouT3TXYBhyKnp6urq556qrr6tlF0qzXX4U7gG7O3",
"Db+4zKsWfTxbLLp1J8CPNc+tcS+wOf3wmV3C//CvrGqtwo1Z473C6fJU+fTpxWL5vali6fSZMzMnzxSm",
"pgzTCFZq+IQfeLazZDRMo2h5QWr09YOGj/hp2lgwDTvgVZInN4f6wvI8a4Xm9LgV8NJZmrjselUrMGaN",
"khXwE4Fd5ToxS7zCjzjE9s/LQanlla2Kz6OnF123wi0HH3esKscn/93jZWPW+LfJeCMm1S5MXsJnGqbh",
"B1ZQ9w97Wm3YZflwwzTqtdJR1133uXfhObb3llWp8OAwST+VTzUapuHxm3XbQ6VdJ8OKRFCmEr1SaSxS",
"RrRHRnKDk4teiORzF7/gxQDlS+sIl+nUqzi34+IMN/Bf11tKjI3Xds5ybsxZXinvEUXLKy27lRL38K8S",
"94ueXQts1zFmDXgMffGQQQf2oA1b0IU9cV/cgTaDXWiLVbEm1g0zoe4LV89eYvjPh1e1DuQXNZP8AEPY",
"YnNX56YZ9GAPemzu6tVpk50M/5xhogk96EMHhiiJyWAfuuIutMUatKEr1kQTxRygYEPYEKv0ywCGsMNE",
"U6zBUKzCEAbQHSV44ZROXv5VzfZWLrpOsKyR+0fo4rziDoMezYIidWEAPfEQp8Upd1O6Yu9cvPju2PNe",
"45ZuT/5E6hp/ymvXrl1LTzpdmNY6gFOvLmrN4AkMoQ9dsTpKfR9fOZd/YcZD1NtTq0urWGf073ue6+Wt",
"tsp931riaWdH72OOG7CyW3dKuhVK/5tzS+mRM4UZMwYZ2wn+cyYebTsBX+Jebj1FfIsZSaIT/r9tP3C9",
"FY3TudUqd9LBxMAt/A6NFc2dnA3asIe2PsRvoS9aTNylB2amte71amLFc0DsEeOMZ906zwPLrvgao/wH",
"aUaaO3l2H4awKVoM9sUqdGGLft6DITyDnlgT902yXtiFHj69IVqwJVpijYmvEWfEfbEmVsU6vTV0L8SN",
"HvRMuQnfRdsQTYFbtAlt8YBBJ9w9pibuyseG8k04+R608Q9xn1BJeituapN94bvOBGPwGDbw0S3YQ0BD",
"cZ/BFq4LrWINerCPy92GNuyjiNBjhGttNJkODMXDiZRf3p43Asuzy2V/3pi9Pj9yr+YN86AfFxq6zZRf",
"JE2hWPcDt8q9CTnp+06Ja93wlQf3jOumYzU9e3hINiOvNQ2/Ln1c5/SXFDlKe3zZ9vwg5E3xEuAxdKAN",
"A92Sq3apVOGjx8AQOtATd3VjXW9JM/Ap/p/Nz89j8BqihT1Fe1PBsY0/aFGTF12ndLAgWp3ndPORtYIa",
"/CS0HEVgFkN2YhqB7dxwy2XkK4Zp3LRv2ajuRe4tym9WXLfqOnwFkdddtCu4c7bjB1alUqVEALmXv0yD",
"aoZpLE4vXo5HW5WyRR91HOnTiP9lGZKvC/8/ixb0oQ9tRgJJToKo0EFkEI9ggDoNeQnGanR2cQ96sMPo",
"46poJr11qnC6MDVGHDKNYt3zuFNc0Uj1i3YaRhu1Jx6MF7lRt6jj/Ou/R7Yh7sMmIo/EHWQgYg1BsYOI",
"NUQ9wA4RhW8mGPyNQHODgBXRNNKTaOJY8Qg5nPhGYTgyvG3kM4R9exILkeB0YRPpoPwN4+Eu4je0JyR8",
"7yIWilXRgi70JRvcRWjcUiwwXj90zRAzZQxA6fH3AQYD2sABzbdjMiWIwvyueKSkVHEHnuFsx9vCWt0r",
"Lls+989Ww0w1o+qnsCHukQGJZmRqsTYomg1ljBLrUncD8Qj3msKPuA/bhBBtMr09cd8YSzC/xo8gDnET",
"4tuShw7EOu5lYs+28bGOaKLyOqTevnqHuEdGsEabLoEEaSyFaLSeFgzQNoxjULPQPyIwCDEjq/ZwvXkg",
"l7hX9+xg5TKmfhILznHLkxR5kT59EEr2P59+QjEkqbP3nYB7LFjmLHBvcIfdsoNl+vNz+ZpZ9jmrebxs",
"f2UyPrE0webV+5m1WCzxqemTM6fmDYzolHwSOZLzR9IuB0HNaKCwtlN29duWoB1kMB2VMdEnMnZJUXpI",
"ItA1O0Qt2uxEzHPkE23KBCnfCN0gb2cPmPga9w52xR30VXQ1FEHa6ypsQw/NhCEU4DffSuvELZ+gABAQ",
"MM0pLsFOpMQKuZFokWwJiSRh2kPRpOFAH3qGaXzJPV8qY2qiMFGg6FjjjlWzjVnj5ERhAvlCzQqWaYMn",
"rbh0JBmBRqn7Kh+6K7PPjMkyiUywJ2OAWCeMwIhi4QuQxRiSBodlKrRev+Y6vjSy6UJBJglOoHzRqtUq",
"dpGGTyJVjMtdYxZWpI2klyFaoklg/C2BZDeSO97hrCs2TGOmMPXChJPJnUY0eAJd3NuIgm+HEJFyTGP2",
"euyS1xcaC8jMqlULUy4jWk1PMW4KQwmzF+sYGFJLRPuzlnzEkNAOFhqmscR1iPiY1KdcACNPWIdQcW4b",
"4xrFoC4TD2CbjLhNiUIzTN8xskww+D/YgS3o0U70YDf1uJyiFRtbD7YZBdVdWkc7Ewl2YiayBW2Mr1Kq",
"jswbNlVS1MHhzKoHy65n/y/tXs5K/4sHb5iJJrShjPSNsEkUYeYViPALmatMB0fAL/HNrlgb31Hgp6xO",
"k2y1KyfLIEHCQkf4TM0KisvakuI2YicMxMPQnKnGKPkkbIdMADcb9byp/kRvwnjSG7nwnPnOLVvOUgpk",
"b9a5H5xzSysvbK9kmVuzVT9Kz0dBaY1St1TVeCOwvklMeytW9tuM9fBUUXdczy5yGcppyThQ/+OAfM31",
"dSj/c6gnRFImk11N5Ih4SeQXJmYMTSpgExuJ/LYr7kWZxIZYRzTOme7ZUulNIwf/WgYTbysZyKht1dpK",
"w4xo4uRtWUZqHMgXf0Skk2V7zIqQh0higNhHk3YQ7JqqpoP/9mWIl8R4yBR+oIE/k+YFfTPBhRO8LceD",
"R5DP87bHi4n4XrM8q8oD7vmkufQSLpzX5WU2/oTUOTzhmo2ranE+Fnh1biY2PVsnWng9Fg6/vpX091VR",
"jScUndPINSrwju92v6Y4eRZC9yXTIC58JCr+kh0syzrxKwmEqt4xTLtcV8ek//C3Q7n8Hx734j0uJvej",
"fQ6tbVQ2kcpV1xl5SC+sqqY1pgj6UROCEWl0qhiF/kqFq1XoyYJvnA4oH+2I9WyRShYa1yjIt6ikpX+H",
"ycRDHCVTEpkuE29TZI7BE/gBnpoM/o5//AV64o4USTYowG+UlMc/5Pz/cpRJX+WeXVamczlsB3m9WHC8",
"rCh9SHKsNp/8EVGj0XhT0EljT0SDk/b0toPD/4+xxhE+cxgzps3TR+tsRYs0L718N2vqQ4zcdNDUoiOX",
"bRl2o9YeitQD8rsu+w8m+3/uQVe2+gyJatyNzxk0r8/56kfWku3Qn2fDpRzioYkGmbRMYp0OkdqIvuo0",
"UDTZlOx7qVAbimp+IHe+WefeSuzPNWuJG0nvLfGyVa8ExuyU7ggkKxWJsT1CrjFFqNhVOxghQ6GgkeJ5",
"yUUaVZK2FPVMjuXh+U7KwA2sykfWknxzfGSn1WUel45RmswpXWd95Kxx0Tp0hV2trTJ5vNeGTWVPd4hz",
"7ox0xrBlNU5N07b+Ma+6X/IPPLc6JzsWM3auswn74BBzrP6M18ZJEynfUJbW08dUvzcGKquwO/IEN443",
"O/RRRoGjp3vIqyRbyqo3+drYhslqD+KMT7JJHoVDVfOTwYoavlS7nHYZmTNoyTx1hbjp4u/SNb5HDSeY",
"wTBs8Ih2r/WHczyPcyQUHDpIVsEHukeI75M1S7aY6gvYf4Z22IeoWqQjR1F9GvKsBfapUWANw1QaAvME",
"aUVFi9demab+qkj0XJPB21WTjtehUvVdKlJLV9Nvv2x0UWxJse1c5Wkufuo5tyxx80U2jl25fN4wjbmz",
"549yq+W4ZCqiRu1EP1eGQCUGRuf+ieRiSN20G2Gbl6zexe9KKDlsIaIwVNco9gp1hmZ0e7xU+kWptfHW",
"bC8in6zF7h2+wa/Ih69YjuqG4KUjeW20FHWk/fwmh769HF8eGOXY4f2CtzI9hb++hvTU1DTM9mA/7A5a",
"J+x9OObsqnH85VXa08mwx4uuVxo/Fw6t4+XnwuOU9pMahp23KzDnG2SohWpT3rtILIuuYYiHYZWKfB1p",
"VzaR7yfcPvRz6fXxJcRRuc9PUXdZSOskMc1lRLPzzgkGT6nwRWdu1GKW6IvI5kdtedcvbJRuZ7GrTS/M",
"HShEJ2EoBzWnpdtIi4temb1Dx+v4aF/KvoWwI1qKkg5UnxF+Jd+6rw7o8Zfuu2rmqMFeNawm2tpbuW5S",
"JkuHQ8zt6IJO/OwEgx+ihx8hSg+IZw/FXcp0xB26fjWkRTZVjKKGwVBnsqM92cOhmmWpCjsg2rbDYJdO",
"GeVboyZbJnkebcMDKlbuhI9ROpG9biRBWrYVhvfwtqi2uSelVq0LYT+9bMrvpS9HduSiBrLdfkSv1Fzc",
"OP1ijgWSNxXi7FfSioPv6MTR8A09JJDRUp0bt1M3LHKmKOGu8Mo6BPOePJCsK+XOv6v0/Sf9pQilmURe",
"f4S4EPUyhlB4EBwlIF+B/OiusxMMfiNV9eNbLSnIJ2RJwCzOl8jgTSaT/XwrRF81UBIYbYjv6FClD70M",
"tLfljNF1AfqYBfZUzUA0Gd3oQSyURZHwPnb4TCvVqEyQPKBAMEx3LEfwr7lbkMOtjyVMXVT3O14MalnR",
"nZyYGp0qTBd092UWEzfrD7LM6Ab+gfe3Llz+8MTM9NRpJr5W+9+mHOHQC1sVd8l20ihLX30WcD/QDagt",
"uw6/FN34joedPlMI/6cb5/Gg7jlXvEp61HIQ1PzZyUnfDviEV59UNdORl0YPUlXylmA2LCjOnbjhozbr",
"ZYSJtFVUbOeGftFLrrtUwWWPcwvy4LAiu5VSnh5dpkL9nXolUeTn5IWbVGVQltcHogV7jPCtBxuwK1pH",
"QE1NQVJ3chZCSS8PJDooJU3LL3OUOdvSqfI3KzoszI1QN55EC/ZDZpu+QaleEdmh5h2JSiShfzgEPWPE",
"4xEhjR9XC9QMSFxRp5RVDQjzicZC458BAAD//9qBCRoiRwAA",
}
// 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
}