39 lines
864 B
Go
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
|
|
}
|