spark-server/internal/module/group/logic/get.go
2026-09-18 14:50:41 +08:00

39 lines
864 B
Go

package logic
import (
"context"
"spark-server/internal/pkg/errs"
)
func (s *Service) Get(ctx context.Context, userID, groupID int64) (*View, error) {
if !s.ready() || userID <= 0 {
return nil, errs.ErrUnauthorized
}
g, err := s.loadActive(ctx, groupID)
if err != nil {
return nil, err
}
mem, err := s.requireMember(ctx, groupID, userID)
if err != nil {
return nil, err
}
return viewOf(g, mem), nil
}
func (s *Service) List(ctx context.Context, userID int64, limit int) (*List, error) {
if !s.ready() || userID <= 0 {
return nil, errs.ErrUnauthorized
}
groups, err := s.repo.ListByUser(ctx, userID, limit)
if err != nil {
return nil, err
}
items := make([]*View, 0, len(groups))
for _, g := range groups {
mem, _ := s.repo.GetMember(ctx, g.ID, userID)
items = append(items, viewOf(g, mem))
}
return &List{Items: items}, nil
}