diff --git a/collector/webhook.go b/collector/webhook.go index 8c21c99..44ad86b 100644 --- a/collector/webhook.go +++ b/collector/webhook.go @@ -176,6 +176,17 @@ func webhook[T any]( return } + if _, ok := any(e).(*endpoint.Games); ok { + game, err := db.GetItemByIGDBID[pb.Game](endpoint.EPGames, data.ID) + if err == nil { + g, err := db.ConvertGame(game.Item) + if err == nil { + g.MId = game.MId + _ = db.SaveGame(g) + } + } + } + // update associated game type gameGetter interface { GetGame() *pb.Game @@ -185,26 +196,29 @@ func webhook[T any]( game, err := db.GetItemByIGDBID[pb.Game](endpoint.EPGames, v.GetGame().Id) if err != nil && err != mongo.ErrNoDocuments { log.Printf("failed to get game: %v", err) - return + goto END } g, err := db.ConvertGame(game.Item) if err != nil { log.Printf("failed to convert game: %v", err) - return + goto END } oldGame, err := db.GetGameByIGDBID(game.Item.Id) if err != nil && err != mongo.ErrNoDocuments { log.Printf("failed to get game: %v", err) - return + goto END + } + if oldGame != nil { + g.MId = oldGame.MId } - g.MId = oldGame.MId err = db.SaveGame(g) if err != nil { log.Printf("failed to save game: %v", err) - return + goto END } } + END: log.Printf("%s %d saved", e.GetEndpointName(), data.ID) } }