github.com/treeverse/lakefs@v1.24.1-0.20240520134607-95648127bfb0/pkg/api/tmpl/inline.tmpl (about)

     1  // inline.tmpl based on https://github.com/deepmap/oapi-codegen/tree/master/pkg/codegen/templates
     2  
     3  // Base64 encoded, gzipped, json marshaled Swagger object
     4  var swaggerSpec = []string{
     5  {{range .}}
     6      "{{.}}",{{end}}
     7  }
     8  
     9  // GetSwaggerSpecReader returns a reader to the Swagger specification corresponding to the generated code in this file.
    10  func GetSwaggerSpecReader() (io.Reader, error) {
    11  	zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, ""))
    12  	if err != nil {
    13  		return nil, fmt.Errorf("error base64 decoding spec: %s", err)
    14  	}
    15  	zr, err := gzip.NewReader(bytes.NewReader(zipped))
    16  	if err != nil {
    17  		return nil, fmt.Errorf("error decompressing spec: %s", err)
    18  	}
    19  	return zr, err
    20  }
    21  
    22  // GetSwagger returns the Swagger specification corresponding to the generated code
    23  // in this file.
    24  func GetSwagger() (*openapi3.Swagger, error) {
    25  	zr, err := GetSwaggerSpecReader()
    26  	if err != nil {
    27  		return nil, err
    28  	}
    29  	var buf bytes.Buffer
    30  	_, err = buf.ReadFrom(zr)
    31  	if err != nil {
    32  		return nil, fmt.Errorf("error decompressing spec: %s", err)
    33  	}
    34  	swagger, err := openapi3.NewSwaggerLoader().LoadSwaggerFromData(buf.Bytes())
    35  	if err != nil {
    36  		return nil, fmt.Errorf("error loading Swagger: %s", err)
    37  	}
    38  	return swagger, nil
    39  }