From 47bc8acace04ef6c5f3fcf19cb2f8a3a011c2df1 Mon Sep 17 00:00:00 2001 From: Nathan Coad Date: Wed, 25 Sep 2024 12:50:55 +1000 Subject: [PATCH] update --- db/db.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/db/db.go b/db/db.go index 0af8bb2..a674241 100644 --- a/db/db.go +++ b/db/db.go @@ -82,19 +82,36 @@ func ConvertToSQLParams(input interface{}, output interface{}) { continue } + // Handle fields of type sql.NullString, sql.NullInt64, and normal string/int64 fields switch outputField.Type() { case reflect.TypeOf(sql.NullString{}): + // Handle sql.NullString if inputField.Kind() == reflect.Ptr && inputField.IsNil() { outputField.Set(reflect.ValueOf(sql.NullString{Valid: false})) } else { outputField.Set(reflect.ValueOf(sql.NullString{String: inputField.String(), Valid: true})) } + case reflect.TypeOf(sql.NullInt64{}): + // Handle sql.NullInt64 if inputField.Int() == 0 { outputField.Set(reflect.ValueOf(sql.NullInt64{Valid: false})) } else { outputField.Set(reflect.ValueOf(sql.NullInt64{Int64: inputField.Int(), Valid: true})) } + + case reflect.TypeOf(""): + // Handle normal string fields + if inputField.Kind() == reflect.Ptr && inputField.IsNil() { + outputField.SetString("") // Set to empty string if input is nil + } else { + outputField.SetString(inputField.String()) + } + + case reflect.TypeOf(int64(0)): + // Handle normal int64 fields + outputField.SetInt(inputField.Int()) + } } }