diff --git a/main.go b/main.go index ba0b2ff..188fd5d 100644 --- a/main.go +++ b/main.go @@ -7,5 +7,6 @@ import ( func main() { var user models.UserModel - utils.ExtractModels(user) + var exceptField = []string{"fullname"} + utils.ExtractModelField(user, exceptField) } diff --git a/utils/helper.go b/utils/helper.go index 294986f..da50d43 100644 --- a/utils/helper.go +++ b/utils/helper.go @@ -5,7 +5,7 @@ import ( "reflect" ) -func ExtractModels(model interface{}) { +func ExtractModelField(model interface{}, exceptionalField []string) { var reflectValue = reflect.ValueOf(model) if reflectValue.Kind() == reflect.Ptr { @@ -15,6 +15,34 @@ func ExtractModels(model interface{}) { var reflectType = reflectValue.Type() for i := 0; i < reflectValue.NumField(); i++ { - fmt.Println(reflectType.Field(i).Tag.Get("json")) + for _, item := range exceptionalField { + current_field := reflectType.Field(i).Tag.Get("json") + if current_field != item { + fmt.Println(current_field) + } + } } } + +func PutAllValueTogether(models [][]interface{}) string { + var values string + + for indexCols, cols := range models { + var valueRows string + for indexRows, rows := range cols { + if (indexRows + 1) < len(cols) { + valueRows += fmt.Sprintf("'%v', ", rows.(string)) + } else { + valueRows += fmt.Sprintf("'%v' ", rows.(string)) + } + } + + if (indexCols + 1) < len(cols) { + values += fmt.Sprintf("(%v),", valueRows) + } else { + values += fmt.Sprintf("(%v);", valueRows) + } + } + + return values +}