refac: article reads, story delete, no leaks, stored SEO status, rate limit, cleanup (%site%, article repo split, old lang repos, one default per site rule to domain)

This commit is contained in:
Florian Sylvain committed 2026-11-03 16:01:52 +01:00
1 parent 9d284e65a9
commit 7c15206170
85 files changed
+1788 -593

No files matched your search

@@ -65,10 +65,8 @@ func (u *UpdateSiteLanguagesUseCase) Update(ctx context.Context, command UpdateS
if err != nil {
return err
}
if !localization.SameRows(before, after) {
if err := tx.Localization.Replace(found.ID, after); err != nil {
return err
}
if err := replaceLanguages(tx, found.ID, before, after); err != nil {
return err
}
view, err = readSiteLanguages(tx.Localization, found)
return err
@@ -87,19 +85,26 @@ func (u *UpdateSiteLanguagesUseCase) Update(ctx context.Context, command UpdateS
return view, nil
}
func languageChanges(before []localization.Row, after []localization.Row) []audit.Change {
changes := []audit.Change{}
changes = audit.AppendTextChange(changes, audit.FieldDefaultLanguage, defaultTag(before), defaultTag(after))
return audit.AppendTextChange(changes, audit.FieldLanguages, languagesLabel(before), languagesLabel(after))
func replaceLanguages(tx transaction.Repositories, siteID uint32, before []localization.Row, after []localization.Row) error {
if localization.SameRows(before, after) {
return nil
}
if err := localization.RequireSingleDefault(after); err != nil {
return err
}
if err := tx.Localization.Replace(siteID, after); err != nil {
return err
}
if localization.DefaultTag(before) == localization.DefaultTag(after) {
return nil
}
return tx.ArticleSEO.MarkSiteSEOStale(siteID)
}
func defaultTag(rows []localization.Row) string {
for _, row := range rows {
if row.IsDefault {
return row.Tag
}
}
return ""
func languageChanges(before []localization.Row, after []localization.Row) []audit.Change {
changes := []audit.Change{}
changes = audit.AppendTextChange(changes, audit.FieldDefaultLanguage, localization.DefaultTag(before), localization.DefaultTag(after))
return audit.AppendTextChange(changes, audit.FieldLanguages, languagesLabel(before), languagesLabel(after))
}
func languagesLabel(rows []localization.Row) string {