diff --git a/pkg/api/controllers/config_controller.go b/pkg/api/controllers/config_controller.go index 885a929be..fdf2c29c4 100644 --- a/pkg/api/controllers/config_controller.go +++ b/pkg/api/controllers/config_controller.go @@ -2,6 +2,7 @@ package controllers import ( "bytes" + "encoding/json" "gopkg.in/yaml.v3" "net/http" @@ -56,16 +57,28 @@ func (ctl *ConfigController) GetInfo(c *gin.Context) { //go:embed swagger.yaml var swagger string +func parseSwagger(version string) map[string]interface{} { + ret := make(map[string]interface{}) + err := yaml.NewDecoder(bytes.NewBufferString(swagger)).Decode(&ret) + if err != nil { + panic(err) + } + ret["info"].(map[string]interface{})["version"] = version + return ret +} + func (ctl *ConfigController) GetDocsAsYaml(c *gin.Context) { - c.Writer.Write([]byte(swagger)) + err := yaml.NewEncoder(c.Writer).Encode(parseSwagger(ctl.Version)) + if err != nil { + panic(err) + } } func (ctl *ConfigController) GetDocsAsJSON(c *gin.Context) { - ret := make(map[string]interface{}) - err := yaml.NewDecoder(bytes.NewBufferString(swagger)).Decode(&ret) + enc := json.NewEncoder(c.Writer) + enc.SetIndent("", " ") + err := enc.Encode(parseSwagger(ctl.Version)) if err != nil { panic(err) } - - c.JSON(http.StatusOK, ret) } diff --git a/pkg/api/controllers/swagger.yaml b/pkg/api/controllers/swagger.yaml index 110aa4707..f84bd7370 100644 --- a/pkg/api/controllers/swagger.yaml +++ b/pkg/api/controllers/swagger.yaml @@ -406,7 +406,15 @@ paths: application/json: schema: $ref: '#/components/schemas/TransactionCommitErrorResponse' + +security: + - basicAuth: [] + components: + securitySchemes: + basicAuth: + type: http + scheme: basic schemas: Config: type: object