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

36 lines
965 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.ID)
}
func readSiteLanguages(repository localization.Repository, siteID uint32) (localization.View, error) {
rows, err := repository.Rows(siteID)
if err != nil {
return localization.View{}, err
}
counts, err := repository.VersionCounts(siteID)
if err != nil {
return localization.View{}, err
}
return localization.BuildView(rows, counts), nil
}