in internal/service/parse.go [55:80]
func getParamsFromPath(r *http.Request, pathPrefix string) (*model.GetSecretParams, error) {
params := &model.GetSecretParams{}
secretPath := r.URL.Path
if !strings.HasPrefix(secretPath, pathPrefix) || len(secretPath) <= len(pathPrefix) {
return nil, errors.New("missing secret ID")
}
params.SecretID = secretPath[len(pathPrefix):]
query := r.URL.Query()
if val, exists := query[QueryParamsVersionId]; exists {
params.VersionID = val[0]
}
// Compatible with vault format
if val, exists := query[QueryParamsVersion]; exists {
params.VersionID = val[0]
}
if val, exists := query[QueryParamsVersionStage]; exists {
params.VersionStage = val[0]
}
for param := range query {
if param != QueryParamsVersionId && param != QueryParamsVersion && param != QueryParamsVersionStage {
return nil, fmt.Errorf("unknown parameter: %s", param)
}
}
return params, nil
}