73 lines
2.0 KiB
Go
73 lines
2.0 KiB
Go
package service
|
|
|
|
import (
|
|
"context"
|
|
|
|
"google.golang.org/protobuf/types/known/wrapperspb"
|
|
|
|
pb "github.com/topfans/backend/pkg/proto/moderation"
|
|
"github.com/topfans/backend/services/moderationService/repository"
|
|
)
|
|
|
|
type CategoryService struct {
|
|
repo *repository.ModerationRepository
|
|
}
|
|
|
|
func NewCategoryService(repo *repository.ModerationRepository) *CategoryService {
|
|
return &CategoryService{repo: repo}
|
|
}
|
|
|
|
func (s *CategoryService) GetReportCategories(ctx context.Context, req *pb.GetReportCategoriesRequest) (*pb.GetReportCategoriesResponse, error) {
|
|
cats, err := s.repo.ListReportCategories(ctx)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
resp := &pb.GetReportCategoriesResponse{}
|
|
for _, c := range cats {
|
|
item := &pb.CategoryItem{
|
|
Code: c.Code,
|
|
Name: c.Name,
|
|
Severity: int32(c.Severity),
|
|
SortOrder: c.SortOrder,
|
|
}
|
|
if c.Description != nil {
|
|
item.Description = *c.Description
|
|
}
|
|
resp.Categories = append(resp.Categories, item)
|
|
}
|
|
return resp, nil
|
|
}
|
|
|
|
func (s *CategoryService) GetFeedbackCategories(ctx context.Context, req *pb.GetFeedbackCategoriesRequest) (*pb.GetFeedbackCategoriesResponse, error) {
|
|
cats, err := s.repo.ListFeedbackCategories(ctx)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
resp := &pb.GetFeedbackCategoriesResponse{}
|
|
for _, c := range cats {
|
|
item := &pb.CategoryItem{
|
|
Code: c.Code,
|
|
Name: c.Name,
|
|
SortOrder: c.SortOrder,
|
|
}
|
|
if c.Description != nil {
|
|
item.Description = *c.Description
|
|
}
|
|
resp.Categories = append(resp.Categories, item)
|
|
}
|
|
return resp, nil
|
|
}
|
|
|
|
// IsReportCategoryEnabled 验证分类启用
|
|
func (s *CategoryService) IsReportCategoryEnabled(ctx context.Context, code string) (bool, error) {
|
|
return s.repo.IsReportCategoryEnabled(ctx, code)
|
|
}
|
|
|
|
// IsFeedbackCategoryEnabled 验证反馈分类启用
|
|
func (s *CategoryService) IsFeedbackCategoryEnabled(ctx context.Context, code string) (bool, error) {
|
|
return s.repo.IsFeedbackCategoryEnabled(ctx, code)
|
|
}
|
|
|
|
// avoid unused import warning
|
|
var _ = wrapperspb.Bool
|