From 85ad374a9119b31cf1e08fc12f51e867fa902969 Mon Sep 17 00:00:00 2001 From: qian-squareup <119374224+qian-squareup@users.noreply.github.com> Date: Fri, 6 Jun 2025 15:47:37 -0700 Subject: [PATCH 1/2] update status code for insert/update db errors --- api/api_gomux.go | 12 +++++++++++- api/errors.go | 12 ++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/api/api_gomux.go b/api/api_gomux.go index bd38023..3448011 100644 --- a/api/api_gomux.go +++ b/api/api_gomux.go @@ -17,7 +17,7 @@ import ( "time" "github.com/gorilla/websocket" - "github.com/swaggo/http-swagger" + httpSwagger "github.com/swaggo/http-swagger" "go.mongodb.org/mongo-driver/bson/primitive" "github.com/square/etre" @@ -1263,6 +1263,16 @@ func (api *API) WriteResult(rc *req, w http.ResponseWriter, ids interface{}, err dupeErr.EntityId = v.EntityId dupeErr.Message += " (db err: " + v.Err.Error() + ")" wr.Error = &dupeErr + case "db-insert-one": + insertErr := ErrDBInsertFailed + insertErr.EntityId = v.EntityId + insertErr.Message += " (db err: " + v.Err.Error() + ")" + wr.Error = &insertErr + case "db-update-one": + updateErr := ErrDBUpdateFailed + updateErr.EntityId = v.EntityId + updateErr.Message += " (db err: " + v.Err.Error() + ")" + wr.Error = &updateErr default: wr.Error = &etre.Error{ Message: v.Err.Error(), diff --git a/api/errors.go b/api/errors.go index aa30a9b..891ae0c 100644 --- a/api/errors.go +++ b/api/errors.go @@ -18,6 +18,18 @@ var ErrDuplicateEntity = etre.Error{ Message: "cannot insert or update entity because identifying labels conflict with another entity", } +var ErrDBInsertFailed = etre.Error{ + Type: "db-insert-failed", + HTTPStatus: http.StatusBadRequest, + Message: "failed to insert entity", +} + +var ErrDBUpdateFailed = etre.Error{ + Type: "db-update-failed", + HTTPStatus: http.StatusBadRequest, + Message: "failed to update entity", +} + var ErrNotFound = etre.Error{ Type: "entity-not-found", HTTPStatus: http.StatusNotFound, From 193b811583f2f40fa403805f4b5b4891cdb15055 Mon Sep 17 00:00:00 2001 From: qian-squareup <119374224+qian-squareup@users.noreply.github.com> Date: Fri, 6 Jun 2025 15:59:39 -0700 Subject: [PATCH 2/2] fix error type name --- api/api_gomux.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/api_gomux.go b/api/api_gomux.go index 3448011..4e2cbc2 100644 --- a/api/api_gomux.go +++ b/api/api_gomux.go @@ -1263,12 +1263,12 @@ func (api *API) WriteResult(rc *req, w http.ResponseWriter, ids interface{}, err dupeErr.EntityId = v.EntityId dupeErr.Message += " (db err: " + v.Err.Error() + ")" wr.Error = &dupeErr - case "db-insert-one": + case "db-insert": insertErr := ErrDBInsertFailed insertErr.EntityId = v.EntityId insertErr.Message += " (db err: " + v.Err.Error() + ")" wr.Error = &insertErr - case "db-update-one": + case "db-update": updateErr := ErrDBUpdateFailed updateErr.EntityId = v.EntityId updateErr.Message += " (db err: " + v.Err.Error() + ")"