flamenco/pkg/api/openapi_spec.gen.go
2022-05-30 19:23:00 +02:00

221 lines
13 KiB
Go

// Package api provides primitives to interact with the openapi HTTP API.
//
// Code generated by github.com/deepmap/oapi-codegen version v1.9.0 DO NOT EDIT.
package api
import (
"bytes"
"compress/gzip"
"encoding/base64"
"fmt"
"net/url"
"path"
"strings"
"github.com/getkin/kin-openapi/openapi3"
)
// 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
}