Compare commits
2 Commits
v1.1.8
...
entgo/v1.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
093172ebca | ||
|
|
d65e7bb928 |
25
entgo/update/update.go
Normal file
25
entgo/update/update.go
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
package entgo
|
||||||
|
|
||||||
|
import (
|
||||||
|
"entgo.io/ent/dialect/sql"
|
||||||
|
"github.com/tx7do/go-utils/stringcase"
|
||||||
|
)
|
||||||
|
|
||||||
|
func BuildSetNullUpdate(u *sql.UpdateBuilder, fields []string) {
|
||||||
|
if len(fields) > 0 {
|
||||||
|
for _, field := range fields {
|
||||||
|
field = stringcase.ToSnakeCase(field)
|
||||||
|
u.SetNull(field)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func BuildSetNullUpdater(fields []string) (error, func(u *sql.UpdateBuilder)) {
|
||||||
|
if len(fields) > 0 {
|
||||||
|
return nil, func(u *sql.UpdateBuilder) {
|
||||||
|
BuildSetNullUpdate(u, fields)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
30
entgo/update/update_test.go
Normal file
30
entgo/update/update_test.go
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
package entgo
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"entgo.io/ent/dialect"
|
||||||
|
"entgo.io/ent/dialect/sql"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestBuildSetNullUpdate(t *testing.T) {
|
||||||
|
t.Run("MySQL_Set2", func(t *testing.T) {
|
||||||
|
s := sql.Dialect(dialect.MySQL).Update("users")
|
||||||
|
|
||||||
|
BuildSetNullUpdate(s, []string{"id", "username"})
|
||||||
|
query, args := s.Query()
|
||||||
|
require.Equal(t, "UPDATE `users` SET `id` = NULL, `username` = NULL", query)
|
||||||
|
require.Empty(t, args)
|
||||||
|
|
||||||
|
})
|
||||||
|
t.Run("PostgreSQL_Set2", func(t *testing.T) {
|
||||||
|
s := sql.Dialect(dialect.Postgres).Update("users")
|
||||||
|
|
||||||
|
BuildSetNullUpdate(s, []string{"id", "username"})
|
||||||
|
query, args := s.Query()
|
||||||
|
require.Equal(t, `UPDATE "users" SET "id" = NULL, "username" = NULL`, query)
|
||||||
|
require.Empty(t, args)
|
||||||
|
})
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user