Skip to content

Commit 047cd00

Browse files
saeideeSaeid Saeidee
andauthored
feat: error translation support (#96)
Co-authored-by: Saeid Saeidee <[email protected]>
1 parent c7a22a0 commit 047cd00

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

error_translator.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package sqlserver
2+
3+
import (
4+
"github.com/microsoft/go-mssqldb"
5+
6+
"gorm.io/gorm"
7+
)
8+
9+
var errCodes = map[string]int32{
10+
"uniqueConstraint": 2627,
11+
}
12+
13+
type ErrMessage struct {
14+
Number int32 `json:"Number"`
15+
Message string `json:"Message"`
16+
}
17+
18+
// Translate it will translate the error to native gorm errors.
19+
func (dialector Dialector) Translate(err error) error {
20+
if mssqlErr, ok := err.(*mssql.Error); ok {
21+
if mssqlErr.Number == errCodes["uniqueConstraint"] {
22+
return gorm.ErrDuplicatedKey
23+
}
24+
}
25+
26+
return err
27+
}

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ require (
77
github.com/jinzhu/now v1.1.5 // indirect
88
github.com/microsoft/go-mssqldb v0.21.0
99
golang.org/x/crypto v0.0.0-20221005025214-4161e89ecf1b // indirect
10-
gorm.io/gorm v1.24.0
10+
gorm.io/gorm v1.25.1
1111
)

0 commit comments

Comments
 (0)