gitlab.com/picnic-app/backend/role-api@v0.0.0-20230614140944-06a76ff3696d/internal/repo/spanner/errors.go (about) 1 package spanner 2 3 import ( 4 "cloud.google.com/go/spanner" 5 "google.golang.org/grpc/codes" 6 7 "gitlab.com/picnic-app/backend/role-api/internal/errors" 8 ) 9 10 func fromError(err error) error { 11 if err == nil { 12 return nil 13 } 14 15 if _, ok := err.(errors.Error); ok { 16 return err 17 } 18 19 innerCode := spanner.ErrCode(err) 20 code := codes.Internal 21 switch innerCode { 22 case codes.NotFound: 23 fallthrough 24 case codes.AlreadyExists: 25 code = innerCode 26 } 27 28 return errors.NewWithError(code, "repo failed", err) 29 }