diff --git a/.gitignore b/.gitignore index 3eb9837..4e8ccd1 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,9 @@ rpdata-* .vscode .idea +/main +/main.exe + /graph2/graphcore/*_gen.go generated.gql generated.go diff --git a/services/logs.go b/services/logs.go index 157f1fb..29d1e47 100644 --- a/services/logs.go +++ b/services/logs.go @@ -145,26 +145,33 @@ func (s *LogService) Import(ctx context.Context, importer models.LogImporter, da parsed.Log.EventName = eventName parsed.Log.ChannelName = channelName - log, err := s.logs.Insert(ctx, parsed.Log) + newLog, err := s.logs.Insert(ctx, parsed.Log) if err != nil { return nil, err } for _, post := range parsed.Posts { - post.LogID = log.ShortID + post.LogID = newLog.ShortID } posts, err := s.posts.InsertMany(ctx, parsed.Posts...) if err != nil { - _ = s.logs.Delete(ctx, *log) + _ = s.logs.Delete(ctx, *newLog) return nil, err } - s.changeService.Submit(ctx, models.ChangeModelLog, "add", true, changekeys.Listed(log), log) - s.changeService.Submit(ctx, models.ChangeModelPost, "add", true, changekeys.Listed(log, posts), log, posts) + s.changeService.Submit(ctx, models.ChangeModelLog, "add", true, changekeys.Listed(newLog), newLog) + s.changeService.Submit(ctx, models.ChangeModelPost, "add", true, changekeys.Listed(newLog, posts), newLog, posts) - results = append(results, log) + refreshedLog, err := s.refreshLogCharacters(ctx, *newLog, nil, false) + if err != nil { + log.Printf("Failed to update characters in newLog %s: %s", newLog.ID, err) + } else { + newLog = refreshedLog + } + + results = append(results, newLog) } case models.LogImporterForumLog: { @@ -174,7 +181,7 @@ func (s *LogService) Import(ctx context.Context, importer models.LogImporter, da } for _, parsed := range parseResults { - log, err := s.logs.Insert(ctx, parsed.Log) + newLog, err := s.logs.Insert(ctx, parsed.Log) if err != nil { return nil, err } @@ -182,18 +189,27 @@ func (s *LogService) Import(ctx context.Context, importer models.LogImporter, da parsed.Log.ChannelName = channelName for _, post := range parsed.Posts { - post.LogID = log.ShortID + post.LogID = newLog.ShortID } posts, err := s.posts.InsertMany(ctx, parsed.Posts...) if err != nil { - _ = s.logs.Delete(ctx, *log) + _ = s.logs.Delete(ctx, *newLog) - return nil, err + return results, err } - s.changeService.Submit(ctx, models.ChangeModelLog, "add", true, changekeys.Listed(log), log) - s.changeService.Submit(ctx, models.ChangeModelPost, "add", true, changekeys.Listed(log, posts), log, posts) + refreshedLog, err := s.refreshLogCharacters(ctx, *newLog, nil, false) + if err != nil { + log.Printf("Failed to update characters in newLog %s: %s", newLog.ID, err) + } else { + newLog = refreshedLog + } + + s.changeService.Submit(ctx, models.ChangeModelLog, "add", true, changekeys.Listed(newLog), newLog) + s.changeService.Submit(ctx, models.ChangeModelPost, "add", true, changekeys.Listed(newLog, posts), newLog, posts) + + results = append(results, newLog) } } default: