Skip to content

Commit ecae830

Browse files
saeideeSaeid Saeidee
and
Saeid Saeidee
authored
feat: error translator support (#162)
* feat: error translator support * feat: added duplicated key error * refactor: updated the file name to follow gorm file naming * refactor: updated the error parsing with native driver error --------- Co-authored-by: Saeid Saeidee <[email protected]>
1 parent ed060a7 commit ecae830

File tree

3 files changed

+25
-4
lines changed

3 files changed

+25
-4
lines changed

error_translator.go

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package postgres
2+
3+
import (
4+
"github.com/jackc/pgx/v5/pgconn"
5+
"gorm.io/gorm"
6+
)
7+
8+
var errCodes = map[string]string{
9+
"uniqueConstraint": "23505",
10+
}
11+
12+
func (dialector Dialector) Translate(err error) error {
13+
if pgErr, ok := err.(*pgconn.PgError); ok {
14+
if pgErr.Code == errCodes["uniqueConstraint"] {
15+
return gorm.ErrDuplicatedKey
16+
}
17+
}
18+
19+
return err
20+
}

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@ go 1.14
55
require (
66
github.com/jackc/pgx/v5 v5.3.0
77
github.com/jinzhu/now v1.1.5 // indirect
8-
gorm.io/gorm v1.24.2
8+
gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11
99
)

go.sum

+4-3
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ github.com/jackc/pgx/v5 v5.3.0/go.mod h1:t3JDKnCBlYIc0ewLF0Q7B8MXmoIaBOZj/ic7iHo
1111
github.com/jackc/puddle/v2 v2.2.0/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4=
1212
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
1313
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
14-
github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
1514
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
1615
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
1716
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
@@ -74,5 +73,7 @@ gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
7473
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
7574
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
7675
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
77-
gorm.io/gorm v1.24.2 h1:9wR6CFD+G8nOusLdvkZelOEhpJVwwHzpQOUM+REd6U0=
78-
gorm.io/gorm v1.24.2/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA=
76+
gorm.io/gorm v1.24.6 h1:wy98aq9oFEetsc4CAbKD2SoBCdMzsbSIvSUUFJuHi5s=
77+
gorm.io/gorm v1.24.6/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k=
78+
gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11 h1:9qNbmu21nNThCNnF5i2R3kw2aL27U8ZwbzccNjOmW0g=
79+
gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k=

0 commit comments

Comments
 (0)