33 lines
786 B
Go
33 lines
786 B
Go
package live
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
|
|
bizlive "kra/internal/biz/live"
|
|
)
|
|
|
|
type FollowService struct{ uc *bizlive.FollowUsecase }
|
|
|
|
func NewFollowService(uc *bizlive.FollowUsecase) *FollowService { return &FollowService{uc: uc} }
|
|
|
|
func (s *FollowService) Status(ctx context.Context, userID, roomID uint) (bool, error) {
|
|
_, err := s.uc.Get(ctx, userID, roomID)
|
|
if err == nil {
|
|
return true, nil
|
|
}
|
|
if errors.Is(err, bizlive.ErrFollowNotFound) {
|
|
return false, nil
|
|
}
|
|
return false, err
|
|
}
|
|
|
|
func (s *FollowService) Follow(ctx context.Context, userID, roomID uint) (bool, error) {
|
|
_, err := s.uc.Follow(ctx, userID, roomID)
|
|
return err == nil, err
|
|
}
|
|
|
|
func (s *FollowService) Unfollow(ctx context.Context, userID, roomID uint) error {
|
|
return s.uc.Unfollow(ctx, userID, roomID)
|
|
}
|