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:
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
|
||||
|
||||
Reference in new issue
Block a user