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 }