From cb7f946bd69e13cf35558a9a9cab22951a644a38 Mon Sep 17 00:00:00 2001 From: Saeid Date: Wed, 7 Jun 2023 09:06:51 +0200 Subject: [PATCH] feat: foreign key violatation error (#150) Co-authored-by: Saeid Saeidee Co-authored-by: Jinzhu --- error_translator.go | 9 +++++---- go.mod | 2 +- go.sum | 2 ++ 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/error_translator.go b/error_translator.go index 23df522..e33d3cf 100644 --- a/error_translator.go +++ b/error_translator.go @@ -6,8 +6,9 @@ import ( "gorm.io/gorm" ) -var errCodes = map[string]int{ - "uniqueConstraint": 2067, +var errCodes = map[int]error{ + 2067: gorm.ErrDuplicatedKey, + 768: gorm.ErrForeignKeyViolated, } type ErrMessage struct { @@ -30,8 +31,8 @@ func (dialector Dialector) Translate(err error) error { return err } - if errMsg.ExtendedCode == errCodes["uniqueConstraint"] { - return gorm.ErrDuplicatedKey + if translatedErr, found := errCodes[errMsg.ExtendedCode]; found { + return translatedErr } return err } diff --git a/go.mod b/go.mod index 3201bfd..0c031e7 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/mattn/go-sqlite3 v1.14.17 - gorm.io/gorm v1.25.0 + gorm.io/gorm v1.25.2-0.20230530020048-26663ab9bf55 ) require ( diff --git a/go.sum b/go.sum index a231927..45bb183 100644 --- a/go.sum +++ b/go.sum @@ -6,3 +6,5 @@ github.com/mattn/go-sqlite3 v1.14.17 h1:mCRHCLDUBXgpKAqIKsaAaAsrAlbkeomtRFKXh2L6 github.com/mattn/go-sqlite3 v1.14.17/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= gorm.io/gorm v1.25.0 h1:+KtYtb2roDz14EQe4bla8CbQlmb9dN3VejSai3lprfU= gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= +gorm.io/gorm v1.25.2-0.20230530020048-26663ab9bf55 h1:sC1Xj4TYrLqg1n3AN10w871An7wJM0gzgcm8jkIkECQ= +gorm.io/gorm v1.25.2-0.20230530020048-26663ab9bf55/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k=