in pkg/config/api_config.go [174:213]
func initAPIConfigMethodFromKvList(config *fc.APIConfig, kList, vList []string) error {
for i := range kList {
v := vList[i]
method := &fc.Method{}
err := yaml.UnmarshalYML([]byte(v), method)
if err != nil {
logger.Errorf("unmarshalYmlConfig error %s", err)
return err
}
found := false
for r, resource := range config.Resources {
if method.ResourcePath != resource.Path {
continue
}
for j, old := range resource.Methods {
if old.HTTPVerb == method.HTTPVerb {
// modify one method
resource.Methods[j] = *method
found = true
}
}
if !found {
resource.Methods = append(resource.Methods, *method)
config.Resources[r] = resource
found = true
}
}
// not found one resource, so need add empty resource first
if !found {
resource := &fc.Resource{}
resource.Methods = append(resource.Methods, *method)
resource.Path = method.ResourcePath
config.Resources = append(config.Resources, *resource)
}
}
return nil
}