diff --git a/Changelog.md b/Changelog.md index 86e50f64..77032f0b 100644 --- a/Changelog.md +++ b/Changelog.md @@ -15,6 +15,7 @@ Changelog [format](http://keepachangelog.com/en/1.0.0/) * GODT-282 Completely delete old draft instead moving to trash when user updates draft * Adding DSN Sentry as build time parameter * GODT-124 bump go-appdir from v1.0.0 to v1.1.0 +* Skip processing message update event if http statuscode is 422 ## [v1.2.6] Donghai - beta (2020-03-XXX) diff --git a/internal/store/event_loop.go b/internal/store/event_loop.go index 734961dc..62b93339 100644 --- a/internal/store/event_loop.go +++ b/internal/store/event_loop.go @@ -431,7 +431,7 @@ func (loop *eventLoop) processMessages(eventLog *logrus.Entry, messages []*pmapi msgLog.WithError(err).Warning("Message was not present in DB. Trying fetch...") if msg, err = loop.store.fetchMessage(message.ID); err != nil { - if err != pmapi.ErrAPINotReachable { + if err == pmapi.ErrNoSuchMessage { msgLog.WithError(err).Warn("Skipping message update because message exists neither in local DB nor on API") err = nil continue diff --git a/pkg/pmapi/client.go b/pkg/pmapi/client.go index ef96639d..3c72725c 100644 --- a/pkg/pmapi/client.go +++ b/pkg/pmapi/client.go @@ -56,6 +56,8 @@ var ( ErrInvalidToken = errors.New("refresh token invalid") ErrAPINotReachable = errors.New("cannot reach the server") ErrUpgradeApplication = errors.New("application upgrade required") + + ErrNoSuchMessage = errors.New("no such message") ) type ErrUnauthorized struct { diff --git a/pkg/pmapi/messages.go b/pkg/pmapi/messages.go index f3a68943..013617d6 100644 --- a/pkg/pmapi/messages.go +++ b/pkg/pmapi/messages.go @@ -532,7 +532,13 @@ func (c *Client) GetMessage(id string) (msg *Message, err error) { return } + if res.StatusCode == http.StatusUnprocessableEntity { + err = ErrNoSuchMessage + return + } + msg, err = res.Message, res.Err() + return } diff --git a/pkg/pmapi/res.go b/pkg/pmapi/res.go index 5f196a34..c6b5e44a 100644 --- a/pkg/pmapi/res.go +++ b/pkg/pmapi/res.go @@ -17,6 +17,8 @@ package pmapi +import "net/http" + // Common response codes. const ( CodeOk = 1000