👔 Created basic page use case implementation

This commit is contained in:
Maxim Lebedev 2023-11-08 05:13:34 +06:00
parent 79d8fa66f6
commit 9bd2f81c46
Signed by: toby3d
GPG Key ID: 1F14E25B7C119FC5
1 changed files with 30 additions and 0 deletions

View File

@ -0,0 +1,30 @@
package usecase
import (
"context"
"fmt"
"golang.org/x/text/language"
"source.toby3d.me/toby3d/home/internal/domain"
"source.toby3d.me/toby3d/home/internal/page"
)
type pageUseCase struct {
pages page.Repository
}
func NewPageUseCase(pages page.Repository) page.UseCase {
return &pageUseCase{
pages: pages,
}
}
func (ucase *pageUseCase) Do(ctx context.Context, lang language.Tag, path string) (*domain.Page, error) {
page, err := ucase.pages.Get(ctx, lang, path)
if err != nil {
return nil, fmt.Errorf("cannot find '%s' page: %w", path, err)
}
return page, nil
}