👔 Use static repository in Page use case implementation
This commit is contained in:
parent
0fff9a10d9
commit
d42b96607b
|
@ -4,21 +4,25 @@ import (
|
|||
"context"
|
||||
"fmt"
|
||||
"path"
|
||||
"slices"
|
||||
|
||||
"golang.org/x/text/language"
|
||||
|
||||
"source.toby3d.me/toby3d/home/internal/domain"
|
||||
"source.toby3d.me/toby3d/home/internal/page"
|
||||
"source.toby3d.me/toby3d/home/internal/static"
|
||||
"source.toby3d.me/toby3d/home/internal/urlutil"
|
||||
)
|
||||
|
||||
type pageUseCase struct {
|
||||
pages page.Repository
|
||||
pages page.Repository
|
||||
statics static.Repository
|
||||
}
|
||||
|
||||
func NewPageUseCase(pages page.Repository) page.UseCase {
|
||||
func NewPageUseCase(pages page.Repository, statics static.Repository) page.UseCase {
|
||||
return &pageUseCase{
|
||||
pages: pages,
|
||||
pages: pages,
|
||||
statics: statics,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -46,6 +50,18 @@ func (ucase *pageUseCase) Do(ctx context.Context, lang language.Tag, p string) (
|
|||
continue
|
||||
}
|
||||
|
||||
if out.Files, _, err = ucase.statics.Fetch(ctx, path.Dir(targets[i])); err != nil {
|
||||
return out, nil
|
||||
}
|
||||
|
||||
for j := range out.Files {
|
||||
if ext := out.Files[j].Ext(); ext != ".html" && ext != ".md" {
|
||||
continue
|
||||
}
|
||||
|
||||
out.Files = slices.Delete(out.Files, j, j+1)
|
||||
}
|
||||
|
||||
return out, nil
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ import (
|
|||
|
||||
pagefsrepo "source.toby3d.me/toby3d/home/internal/page/repository/fs"
|
||||
"source.toby3d.me/toby3d/home/internal/page/usecase"
|
||||
"source.toby3d.me/toby3d/home/internal/static"
|
||||
)
|
||||
|
||||
func TestDo(t *testing.T) {
|
||||
|
@ -24,7 +25,7 @@ func TestDo(t *testing.T) {
|
|||
filepath.Join("index.md"): &fstest.MapFile{Data: []byte(`index.md`)},
|
||||
})
|
||||
|
||||
ucase := usecase.NewPageUseCase(pages)
|
||||
ucase := usecase.NewPageUseCase(pages, static.NewDummyRepository())
|
||||
|
||||
for name, tc := range map[string]struct {
|
||||
input string
|
||||
|
|
Loading…
Reference in New Issue