35 lines
823 B
Go
35 lines
823 B
Go
package gateway
|
|
|
|
import (
|
|
"git.squidspirit.com/squid/blog.git/backend/internal/adapter/gateway/dbdto"
|
|
"git.squidspirit.com/squid/blog.git/backend/internal/application"
|
|
"git.squidspirit.com/squid/blog.git/backend/internal/domain"
|
|
"github.com/thoas/go-funk"
|
|
)
|
|
|
|
type postRepo struct {
|
|
dbService PostDBService
|
|
}
|
|
|
|
type PostDBService interface {
|
|
QueryAll() ([]*dbdto.Post, error)
|
|
}
|
|
|
|
func NewPostRepo(dbService PostDBService) application.PostRepo {
|
|
return &postRepo{dbService}
|
|
}
|
|
|
|
func (r *postRepo) GetAll() ([]*domain.Post, error) {
|
|
postDtos, err := r.dbService.QueryAll()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return funk.Map(postDtos, func(postDto *dbdto.Post) *domain.Post {
|
|
return postDto.ToEntity()
|
|
}).([]*domain.Post), nil
|
|
}
|
|
|
|
func (r *postRepo) GetByID(id int) (*domain.Post, error) {
|
|
panic("unimplemented")
|
|
}
|