♻️ Replaced Language property in Site module
This commit is contained in:
parent
6046187817
commit
d8673188ce
|
@ -3,12 +3,10 @@ package domain
|
|||
import (
|
||||
"net/url"
|
||||
"time"
|
||||
|
||||
"golang.org/x/text/language"
|
||||
)
|
||||
|
||||
type Site struct {
|
||||
Language language.Tag
|
||||
Language Language
|
||||
BaseURL *url.URL
|
||||
Params map[string]any
|
||||
TimeZone *time.Location
|
||||
|
|
|
@ -3,11 +3,9 @@ package site
|
|||
import (
|
||||
"context"
|
||||
|
||||
"golang.org/x/text/language"
|
||||
|
||||
"source.toby3d.me/toby3d/home/internal/domain"
|
||||
)
|
||||
|
||||
type Repository interface {
|
||||
Get(ctx context.Context, lang language.Tag) (*domain.Site, error)
|
||||
Get(ctx context.Context, lang domain.Language) (*domain.Site, error)
|
||||
}
|
||||
|
|
|
@ -8,7 +8,6 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/adrg/frontmatter"
|
||||
"golang.org/x/text/language"
|
||||
"gopkg.in/yaml.v3"
|
||||
|
||||
"source.toby3d.me/toby3d/home/internal/domain"
|
||||
|
@ -48,11 +47,10 @@ func NewFileSystemSiteRepository(rootDir fs.FS) site.Repository {
|
|||
}
|
||||
}
|
||||
|
||||
func (repo *fileSystemSiteRepository) Get(ctx context.Context, lang language.Tag) (*domain.Site, error) {
|
||||
func (repo *fileSystemSiteRepository) Get(ctx context.Context, lang domain.Language) (*domain.Site, error) {
|
||||
ext := ".md"
|
||||
if lang != language.Und {
|
||||
base, _ := lang.Base()
|
||||
ext = "." + base.String() + ext
|
||||
if lang != domain.LanguageUnd {
|
||||
ext = "." + lang.Lang() + ext
|
||||
}
|
||||
|
||||
target := "index" + ext
|
||||
|
|
|
@ -6,7 +6,6 @@ import (
|
|||
"testing/fstest"
|
||||
|
||||
"github.com/google/go-cmp/cmp"
|
||||
"golang.org/x/text/language"
|
||||
|
||||
"source.toby3d.me/toby3d/home/internal/domain"
|
||||
repository "source.toby3d.me/toby3d/home/internal/site/repository/fs"
|
||||
|
@ -15,6 +14,8 @@ import (
|
|||
func TestGet(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
testLangEn := domain.NewLanguage("en")
|
||||
testLangRu := domain.NewLanguage("ru")
|
||||
testData := fstest.MapFS{
|
||||
"index.ru.md": &fstest.MapFile{
|
||||
Data: []byte("---\ntitle: пример\n---\nпривет, мир!\n"),
|
||||
|
@ -27,21 +28,21 @@ func TestGet(t *testing.T) {
|
|||
repo := repository.NewFileSystemSiteRepository(testData)
|
||||
|
||||
for name, tc := range map[string]struct {
|
||||
input language.Tag
|
||||
expect *domain.Site
|
||||
input domain.Language
|
||||
}{
|
||||
"english": {
|
||||
input: language.English,
|
||||
input: testLangEn,
|
||||
expect: &domain.Site{
|
||||
Language: language.English,
|
||||
Language: testLangEn,
|
||||
Title: "example",
|
||||
Params: make(map[string]any),
|
||||
},
|
||||
},
|
||||
"russian": {
|
||||
input: language.Russian,
|
||||
input: testLangRu,
|
||||
expect: &domain.Site{
|
||||
Language: language.Russian,
|
||||
Language: testLangRu,
|
||||
Title: "пример",
|
||||
Params: make(map[string]any),
|
||||
},
|
||||
|
@ -57,7 +58,7 @@ func TestGet(t *testing.T) {
|
|||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if diff := cmp.Diff(out, tc.expect, cmp.AllowUnexported(language.Und)); diff != "" {
|
||||
if diff := cmp.Diff(out, tc.expect, cmp.AllowUnexported(domain.LanguageUnd, domain.File{})); diff != "" {
|
||||
t.Error(diff)
|
||||
}
|
||||
})
|
||||
|
|
|
@ -3,11 +3,9 @@ package site
|
|||
import (
|
||||
"context"
|
||||
|
||||
"golang.org/x/text/language"
|
||||
|
||||
"source.toby3d.me/toby3d/home/internal/domain"
|
||||
)
|
||||
|
||||
type UseCase interface {
|
||||
Do(ctx context.Context, lang language.Tag) (*domain.Site, error)
|
||||
Do(ctx context.Context, lang domain.Language) (*domain.Site, error)
|
||||
}
|
||||
|
|
|
@ -4,8 +4,6 @@ import (
|
|||
"context"
|
||||
"fmt"
|
||||
|
||||
"golang.org/x/text/language"
|
||||
|
||||
"source.toby3d.me/toby3d/home/internal/domain"
|
||||
"source.toby3d.me/toby3d/home/internal/site"
|
||||
"source.toby3d.me/toby3d/home/internal/static"
|
||||
|
@ -23,8 +21,8 @@ func NewSiteUseCase(sites site.Repository, statics static.Repository) site.UseCa
|
|||
}
|
||||
}
|
||||
|
||||
func (ucase *siteUseCase) Do(ctx context.Context, lang language.Tag) (*domain.Site, error) {
|
||||
out, err := ucase.sites.Get(ctx, language.Und)
|
||||
func (ucase *siteUseCase) Do(ctx context.Context, lang domain.Language) (*domain.Site, error) {
|
||||
out, err := ucase.sites.Get(ctx, domain.LanguageUnd)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("cannot find base site data: %w", err)
|
||||
}
|
||||
|
|
|
@ -7,8 +7,7 @@ import (
|
|||
"net/url"
|
||||
"path"
|
||||
|
||||
"golang.org/x/text/language"
|
||||
|
||||
"source.toby3d.me/toby3d/home/internal/domain"
|
||||
"source.toby3d.me/toby3d/home/internal/site"
|
||||
)
|
||||
|
||||
|
@ -25,7 +24,7 @@ func New(siter site.UseCase) *Namespace {
|
|||
}
|
||||
|
||||
func (ns *Namespace) AbsURL(p string) (string, error) {
|
||||
site, err := ns.siter.Do(context.Background(), language.Und)
|
||||
site, err := ns.siter.Do(context.Background(), domain.LanguageUnd)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("cannot fetch site root for AbsURL processing: %w", err)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue