From a07932ee7e70d25a381e2475148adf7a89feea70 Mon Sep 17 00:00:00 2001 From: Jake Taylor <jake@elixxir.io> Date: Wed, 1 Mar 2023 15:24:28 -0600 Subject: [PATCH] port unique constraint error into dm --- indexedDb/impl/channels/implementation.go | 3 +-- indexedDb/impl/dm/implementation.go | 4 +++- indexedDb/impl/utils.go | 3 +++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/indexedDb/impl/channels/implementation.go b/indexedDb/impl/channels/implementation.go index a31a49bd..6ca435ef 100644 --- a/indexedDb/impl/channels/implementation.go +++ b/indexedDb/impl/channels/implementation.go @@ -417,8 +417,7 @@ func (w *wasmModel) receiveHelper( // Store message to database result, err := impl.Put(w.db, messageStoreName, messageObj) - if err != nil && !strings.Contains(err.Error(), - "at least one key does not satisfy the uniqueness requirements") { + if err != nil && !strings.Contains(err.Error(), impl.ErrUniqueConstraint) { // Only return non-unique constraint errors so that the case // below this one can be hit and handle duplicate entries properly. return 0, errors.Errorf("Unable to put Message: %+v", err) diff --git a/indexedDb/impl/dm/implementation.go b/indexedDb/impl/dm/implementation.go index 80b61d93..6765eaa3 100644 --- a/indexedDb/impl/dm/implementation.go +++ b/indexedDb/impl/dm/implementation.go @@ -288,7 +288,9 @@ func (w *wasmModel) receiveHelper( // Store message to database result, err := impl.Put(w.db, messageStoreName, messageObj) - if err != nil { + if err != nil && !strings.Contains(err.Error(), impl.ErrUniqueConstraint) { + // Only return non-unique constraint errors so that the case + // below this one can be hit and handle duplicate entries properly. return 0, errors.Errorf("Unable to put Message: %+v", err) } diff --git a/indexedDb/impl/utils.go b/indexedDb/impl/utils.go index 0fdb2315..93446fc1 100644 --- a/indexedDb/impl/utils.go +++ b/indexedDb/impl/utils.go @@ -30,6 +30,9 @@ const ( // ErrDoesNotExist is an error string for got undefined on Get operations. ErrDoesNotExist = "result is undefined" + + // ErrUniqueConstraint is an error string for failed uniqueness inserts. + ErrUniqueConstraint = "at least one key does not satisfy the uniqueness requirements" ) // NewContext builds a context for indexedDb operations. -- GitLab