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.Role), 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 { role := 0 if mem, err := s.repo.GetMember(ctx, g.ID, userID); err == nil { role = mem.Role } items = append(items, viewOf(g, role)) } return &List{Items: items}, nil }