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

@@ -124,21 +124,20 @@ func (g *CreateArticleUseCase) createWithFreeSlug(ctx context.Context, requested
func (g *CreateArticleUseCase) createInTransaction(ctx context.Context, requested string, draft article.Article) (article.Article, error) {
var created article.Article
err := g.transactor.Run(ctx, func(tx transaction.Repositories) error {
languages, err := tx.Languages.LockSiteLanguages(draft.SiteID)
err := tx.Sites.LockSite(draft.SiteID)
if errors.Is(err, site.ErrSiteNotFound) {
return article.ErrTargetSiteDeleted
}
if err != nil {
return err
}
lang := language.StartingTag(languages)
if requested != language.Unassigned {
lang, err = chooseLanguage(tx.Localization, draft.SiteID, requested)
if err != nil {
return err
}
rows, err := tx.Localization.Rows(draft.SiteID)
if err != nil {
return err
}
if draft.Lang, err = chooseLanguage(rows, requested); err != nil {
return err
}
draft.Lang = lang
draft.Slug, err = freeSlug(tx.Articles, draft.SiteID, draft.Lang, article.GenerateSlug(draft.Title), 0, firstSlugAttempt)
if err != nil {
return err
@@ -149,10 +148,9 @@ func (g *CreateArticleUseCase) createInTransaction(ctx context.Context, requeste
return created, err
}
func chooseLanguage(repository localization.Repository, siteID uint32, requested string) (string, error) {
rows, err := repository.Rows(siteID)
if err != nil {
return "", err
func chooseLanguage(rows []localization.Row, requested string) (string, error) {
if requested == language.Unassigned {
return localization.ConfirmedDefaultTag(rows), nil
}
if localization.NeedsSetup(rows) {
return "", localization.ErrSetupRequired