flamenco/pkg/api/openapi_spec.gen.go
2022-05-20 16:30:42 +02:00

219 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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",
"vN6/fv+fAQAA//9yw0W9jIkAAA==",
}
// 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
}