func (gohanClientCLI *GohanClientCLI) createResourcesTable(s *schema.Schema, buffer *bytes.Buffer, resources []interface{}) { table := tablewriter.NewWriter(buffer) if len(resources) == 0 { return } table.SetHeader(s.Titles()) for _, rawResource := range resources { resourceSlice := []string{} resource := rawResource.(map[string]interface{}) for _, property := range s.Properties { v := "" if val, ok := resource[property.ID]; ok && val != nil { switch property.Type { case "string": v = fmt.Sprint(val) if property.RelationProperty != "" { relatedResource := resource[property.RelationProperty].(map[string]interface{}) v = relatedResource["name"].(string) } default: v = fmt.Sprint(val) } } resourceSlice = append(resourceSlice, v) } table.Append(resourceSlice) } table.Render() }