feat: SEO backend data (1/4)

This commit is contained in:
Florian Sylvain committed 2026-10-15 19:30:29 +02:00
1 parent cb1410f0b0
commit 0eb46b0d74
90 files changed
+6094 -350

No files matched your search

@@ -21,6 +21,9 @@ type CreateSiteCommand struct {
Locale *string
DefaultSocialImageID *uint32
IsDefault bool
SiteName string
TitleTemplate *string
DefaultDescription string
}
func NewCreateSiteUseCase(siteRepository site.Repository, imageRepository image.Repository, recorder audit.Recorder) *CreateSiteUseCase {
@@ -52,6 +55,10 @@ func (u *CreateSiteUseCase) create(command CreateSiteCommand) (site.Site, error)
if err := ensureImageExists(u.imageRepository, command.DefaultSocialImageID); err != nil {
return site.Site{}, err
}
titleTemplate, err := resolveTitleTemplate(command.TitleTemplate)
if err != nil {
return site.Site{}, err
}
taken, err := isKeyTaken(u.siteRepository, command.Key)
if err != nil {
return site.Site{}, err
@@ -71,5 +78,18 @@ func (u *CreateSiteUseCase) create(command CreateSiteCommand) (site.Site, error)
DefaultRobots: robots,
Locale: locale,
IsDefault: command.IsDefault,
SiteName: command.SiteName,
TitleTemplate: titleTemplate,
DefaultDescription: command.DefaultDescription,
})
}
func resolveTitleTemplate(requested *string) (string, error) {
if requested == nil {
return site.DefaultTitleTemplate, nil
}
if err := site.ValidateTitleTemplate(*requested); err != nil {
return "", err
}
return *requested, nil
}