Skip to content

Commit 316303a

Browse files
committed
Use gorm datatypes.UUID instead of uuid.UUID
1 parent 753049d commit 316303a

File tree

5 files changed

+50
-17
lines changed

5 files changed

+50
-17
lines changed

go.mod

+9-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,14 @@ go 1.18
55
require (
66
github.com/jinzhu/inflection v1.0.0
77
github.com/jinzhu/now v1.1.5
8-
golang.org/x/text v0.14.0
8+
golang.org/x/text v0.18.0
99
)
1010

11-
require github.com/google/uuid v1.6.0
11+
require gorm.io/datatypes v1.2.2
12+
13+
require (
14+
filippo.io/edwards25519 v1.1.0 // indirect
15+
github.com/go-sql-driver/mysql v1.8.1 // indirect
16+
github.com/google/uuid v1.6.0 // indirect
17+
gorm.io/driver/mysql v1.5.7 // indirect
18+
)

go.sum

+29
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,37 @@
1+
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
2+
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
3+
github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
4+
github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y=
5+
github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=
6+
github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA=
7+
github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A=
8+
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
9+
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
110
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
211
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
12+
github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM=
13+
github.com/jackc/pgservicefile v0.0.0-20231201235250-de7065d80cb9 h1:L0QtFUgDarD7Fpv9jeVMgy/+Ec0mtnmYuImjTz6dtDA=
14+
github.com/jackc/pgx/v5 v5.5.5 h1:amBjrZVmksIdNjxGW/IiIMzxMKZFelXbUoPNb+8sjQw=
15+
github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk=
316
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
417
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
518
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
619
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
20+
github.com/mattn/go-sqlite3 v1.14.15 h1:vfoHhTN1af61xCRSWzFIWzx2YskyMTwHLrExkBOjvxI=
21+
github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE=
22+
golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30=
23+
golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
724
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
825
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
26+
golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224=
27+
golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
28+
gorm.io/datatypes v1.2.2 h1:sdn7ZmG4l7JWtMDUb3L98f2Ym7CO5F8mZLlrQJMfF9g=
29+
gorm.io/datatypes v1.2.2/go.mod h1:f4BsLcFAX67szSv8svwLRjklArSHAvHLeE3pXAS5DZI=
30+
gorm.io/driver/mysql v1.5.6 h1:Ld4mkIickM+EliaQZQx3uOJDJHtrd70MxAUqWqlx3Y8=
31+
gorm.io/driver/mysql v1.5.6/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM=
32+
gorm.io/driver/mysql v1.5.7 h1:MndhOPYOfEp2rHKgkZIhJ16eVUIRf2HmzgoPmh7FCWo=
33+
gorm.io/driver/mysql v1.5.7/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM=
34+
gorm.io/driver/postgres v1.5.0 h1:u2FXTy14l45qc3UeCJ7QaAXZmZfDDv0YrthvmRq1l0U=
35+
gorm.io/driver/sqlite v1.4.3 h1:HBBcZSDnWi5BW3B3rwvVTc510KGkBkexlOg0QrmLUuU=
36+
gorm.io/driver/sqlserver v1.4.1 h1:t4r4r6Jam5E6ejqP7N82qAJIJAht27EGT41HyPfXRw0=
37+
gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8=

tests/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ require (
77
github.com/jinzhu/now v1.1.5
88
github.com/lib/pq v1.10.9
99
github.com/stretchr/testify v1.9.0
10+
gorm.io/datatypes v1.2.2
1011
gorm.io/driver/mysql v1.5.7
1112
gorm.io/driver/postgres v1.5.9
1213
gorm.io/driver/sqlite v1.5.6
@@ -24,7 +25,6 @@ require (
2425
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
2526
github.com/jackc/pgx/v5 v5.7.1 // indirect
2627
github.com/jinzhu/inflection v1.0.0 // indirect
27-
github.com/kr/text v0.2.0 // indirect
2828
github.com/mattn/go-sqlite3 v1.14.23 // indirect
2929
github.com/microsoft/go-mssqldb v1.7.2 // indirect
3030
github.com/pmezard/go-difflib v1.0.0 // indirect

tests/update_test.go

+9-12
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"testing"
99
"time"
1010

11-
"github.com/google/uuid"
11+
"gorm.io/datatypes"
1212
"gorm.io/gorm"
1313
"gorm.io/gorm/clause"
1414
"gorm.io/gorm/utils"
@@ -185,34 +185,31 @@ func TestUpdates(t *testing.T) {
185185
user3.Age += 100
186186
AssertObjEqual(t, user4, user3, "UpdatedAt", "Age")
187187

188-
// Updates() with map and uuid.UUID - Case 1 - Update with UUID value
189-
uuidVal, uuidErr := uuid.NewUUID()
190-
if uuidErr != nil {
191-
t.Errorf("No error should occur while generating UUID, but got %v", uuidErr)
192-
}
188+
// Updates() with map and datatypes.UUID - Case 1 - Update with UUID value
189+
uuidVal := datatypes.NewUUIDv4()
193190
tx := DB.Model(&user4)
194-
uuidErr = tx.Updates(map[string]interface{}{"user_uuid": uuidVal}).Error
191+
uuidErr := tx.Updates(map[string]interface{}{"user_uuid": uuidVal}).Error
195192
if uuidErr != nil {
196193
t.Errorf("No error should occur while updating with UUID value, but got %v", uuidErr)
197194
}
198195
// Expecting the model object (user4) to reflect the UUID value assignment.
199196
AssertEqual(t, user4.UserUUID, uuidVal)
200197

201-
// Updates() with map and uuid.UUID - Case 2 - Update with UUID nil pointer
202-
var nilUUIDPtr *uuid.UUID = nil
198+
// Updates() with map and datatypes.UUID - Case 2 - Update with UUID nil pointer
199+
var nilUUIDPtr *datatypes.UUID = nil
203200
uuidErr = tx.Updates(map[string]interface{}{"user_uuid": nilUUIDPtr}).Error
204201
if uuidErr != nil {
205202
t.Errorf("No error should occur while updating with nil UUID pointer, but got %v", uuidErr)
206203
}
207204
// Expecting the model object (user4) to reflect the UUID nil pointer assignment.
208205
AssertEqual(t, user4.UserUUID, nilUUIDPtr)
209206

210-
// Updates() with map and uuid.UUID - Case 3 - Update with a non-nil UUID pointer
211-
uuidVal2, uuidErr := uuid.NewUUID()
207+
// Updates() with map and datatypes.UUID - Case 3 - Update with a non-nil UUID pointer
208+
uuidVal2 := datatypes.NewUUIDv1()
212209
if uuidErr != nil {
213210
t.Errorf("No error should occur while generating UUID, but got %v", uuidErr)
214211
}
215-
var nonNilUUIDPtr *uuid.UUID = &uuidVal2
212+
var nonNilUUIDPtr *datatypes.UUID = &uuidVal2
216213
uuidErr = tx.Updates(map[string]interface{}{"user_uuid": nonNilUUIDPtr}).Error
217214
if uuidErr != nil {
218215
t.Errorf("No error should occur while updating with non-nil UUID pointer, but got %v", uuidErr)

utils/tests/models.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"database/sql"
55
"time"
66

7-
"github.com/google/uuid"
7+
"gorm.io/datatypes"
88
"gorm.io/gorm"
99
)
1010

@@ -31,7 +31,7 @@ type User struct {
3131
Languages []Language `gorm:"many2many:UserSpeak;"`
3232
Friends []*User `gorm:"many2many:user_friends;"`
3333
Active bool
34-
UserUUID *uuid.UUID
34+
UserUUID *datatypes.UUID
3535
}
3636

3737
type Account struct {

0 commit comments

Comments
 (0)