Work on ensuring data consistency even for yet unknown fields
Some checks failed
/ docker (push) Has been cancelled
Some checks failed
/ docker (push) Has been cancelled
This commit is contained in:
parent
7e10627618
commit
bf0aaaca8f
12 changed files with 458 additions and 5 deletions
|
@ -89,6 +89,9 @@ func userInbox(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
log.Debug().Str("object-type", objectType).Msg("Inbox message")
|
||||
log.Trace().Bytes("body", body).Msg("Inbox raw message")
|
||||
// TODO: Decide how to handle the handler failing for whatever reason
|
||||
// Add object to unhandled message table and try again later?
|
||||
// Discard it? And how would a handler return that it failed?
|
||||
switch objectType {
|
||||
case "Like":
|
||||
handleLike(w, r, data)
|
||||
|
@ -103,7 +106,17 @@ func userInbox(w http.ResponseWriter, r *http.Request) {
|
|||
case "Create":
|
||||
handleCreate(w, r, data)
|
||||
default:
|
||||
log.Warn().Str("object-type", objectType).Msg("Unknown message type")
|
||||
log.Warn().
|
||||
Str("object-type", objectType).
|
||||
Msg("Unknown message type, storing for later processing")
|
||||
err = dbgen.UnhandledMessage.Create(&models.UnhandledMessage{
|
||||
ForUserId: userId,
|
||||
GlobalInbox: false,
|
||||
RawData: body,
|
||||
})
|
||||
if err != nil {
|
||||
log.Error().Err(err).Msg("Failed to store unhandled message for later")
|
||||
}
|
||||
_ = webutils.ProblemDetailsStatusOnly(w, 500)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue