2025-03-24 18:18:53 +08:00

48 lines
967 B
Go

package newssvc
import (
newsdomain "legalgo-BE-go/internal/domain/news"
"strings"
)
func (i *impl) GetAll(filter newsdomain.Filter) ([]newsdomain.NewsResponse, error) {
var err error
categories := []string{}
tags := []string{}
news := []newsdomain.NewsResponse{}
tagCodeArr := strings.Split(filter.Tags, " ")
categoryCodeArr := strings.Split(filter.Category, " ")
if len(tagCodeArr) > 0 && tagCodeArr[0] != "" {
tags, err = i.tagRepo.GetIDsByCodes(tagCodeArr)
if err != nil {
return news, err
}
if len(tags) < 1 {
return news, nil
}
}
if len(categoryCodeArr) > 0 && categoryCodeArr[0] != "" {
categories, err = i.categoryRepo.GetIDByCode(categoryCodeArr)
if err != nil {
return news, err
}
if len(categories) < 1 {
return news, nil
}
}
filterSpec := newsdomain.NewsFilter{
Tags: tags,
Category: categories,
Active: filter.Active,
Search: filter.Search,
}
return i.newsRepo.GetAll(filterSpec)
}