Files
2026-09-23 17:42:55 +08:00

37 lines
1.1 KiB
Go

package live
import (
"context"
bizlive "kra/internal/biz/live"
"kra/internal/service/dto"
)
type StreamService struct{ uc *bizlive.StreamUsecase }
func NewStreamService(uc *bizlive.StreamUsecase) *StreamService { return &StreamService{uc: uc} }
func (s *StreamService) List(ctx context.Context) ([]*dto.LiveStreamResponse, error) {
streams, err := s.uc.List(ctx)
if err != nil {
return nil, err
}
result := make([]*dto.LiveStreamResponse, 0, len(streams))
for _, stream := range streams {
result = append(result, &dto.LiveStreamResponse{StreamID: stream.StreamID, PublisherOnline: stream.PublisherOnline, SubscriberCount: stream.SubscriberCount})
}
return result, nil
}
func (s *StreamService) Get(ctx context.Context, streamID string) (*dto.LiveStreamResponse, error) {
stream, err := s.uc.Get(ctx, streamID)
if err != nil {
return nil, err
}
return &dto.LiveStreamResponse{StreamID: stream.StreamID, PublisherOnline: stream.PublisherOnline, SubscriberCount: stream.SubscriberCount}, nil
}
func (s *StreamService) Like(ctx context.Context, streamID string) (int, error) {
return s.uc.Like(ctx, streamID)
}