diff --git a/api/api_gomux.go b/api/api_gomux.go index bd38023..4e2cbc2 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": + insertErr := ErrDBInsertFailed + insertErr.EntityId = v.EntityId + insertErr.Message += " (db err: " + v.Err.Error() + ")" + wr.Error = &insertErr + case "db-update": + 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,