feat: Sites feature backend

This commit is contained in:
Florian Sylvain committed 2026-10-14 03:56:50 +02:00
1 parent 45fcbd890d
commit a11338094e
98 files changed
+5365 -214

No files matched your search

@@ -0,0 +1,36 @@
package useCases
import (
"RenewCMS/internal/domain/audit"
"RenewCMS/internal/domain/site"
"context"
)
type SetDefaultSiteUseCase struct {
siteRepository site.Repository
recorder audit.Recorder
}
func NewSetDefaultSiteUseCase(siteRepository site.Repository, recorder audit.Recorder) *SetDefaultSiteUseCase {
return &SetDefaultSiteUseCase{siteRepository, recorder}
}
func (u *SetDefaultSiteUseCase) SetDefault(ctx context.Context, id uint32) (site.Site, error) {
current, err := u.siteRepository.Get(id)
if err != nil {
return site.Site{}, err
}
if current.IsDefault {
return current, nil
}
event := audit.NewEvent(audit.ActionSiteSetDefault, audit.CategorySites)
event.Target = siteTarget(current)
updated, err := u.siteRepository.SetDefault(id)
if err != nil {
recordFailure(ctx, u.recorder, event, err)
return site.Site{}, err
}
u.recorder.Record(ctx, event)
return updated, nil
}