Files
RenewCMS/internal/infrastructure/useCases/GetSiteLanguages.go
T

36 lines
982 B
Go

package useCases
import (
"RenewCMS/internal/domain/localization"
"RenewCMS/internal/domain/site"
)
type GetSiteLanguagesUseCase struct {
sites site.Repository
localization localization.Repository
}
func NewGetSiteLanguagesUseCase(sites site.Repository, localization localization.Repository) *GetSiteLanguagesUseCase {
return &GetSiteLanguagesUseCase{sites, localization}
}
func (g *GetSiteLanguagesUseCase) Get(key string) (localization.View, error) {
found, err := g.sites.GetByKey(key)
if err != nil {
return localization.View{}, err
}
return readSiteLanguages(g.localization, found)
}
func readSiteLanguages(repository localization.Repository, owner site.Site) (localization.View, error) {
rows, err := repository.Rows(owner.ID)
if err != nil {
return localization.View{}, err
}
counts, err := repository.VersionCounts(owner.ID)
if err != nil {
return localization.View{}, err
}
return localization.BuildView(rows, counts, owner.Locale), nil
}