func (gohanClientCLI *GohanClientCLI) handleRelationArguments(s *schema.Schema, args map[string]interface{}) (map[string]interface{}, error) { parsedArgs := map[string]interface{}{} for arg, value := range args { if arg == s.Parent { parentID, err := gohanClientCLI.getResourceIDForSchemaID(s.Parent, value.(string)) if err != nil { return nil, err } parsedArgs[s.ParentSchemaPropertyID()] = parentID continue } property, _ := s.GetPropertyByID(arg) if property == nil { property, _ = s.GetPropertyByID(arg + "_id") if property != nil && property.Relation != "" { relatedID, err := gohanClientCLI.getResourceIDForSchemaID(property.Relation, value.(string)) if err != nil { return nil, err } parsedArgs[property.ID] = relatedID continue } } parsedArgs[arg] = value } return parsedArgs, nil }