29 lines
661 B
Go
29 lines
661 B
Go
package usecase
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"source.toby3d.me/toby3d/hub/internal/domain"
|
|
"source.toby3d.me/toby3d/hub/internal/subscription"
|
|
)
|
|
|
|
type subscriptionUseCase struct {
|
|
subscriptions subscription.Repository
|
|
}
|
|
|
|
func NewSubscriptionUseCase(subscriptions subscription.Repository) subscription.UseCase {
|
|
return &subscriptionUseCase{
|
|
subscriptions: subscriptions,
|
|
}
|
|
}
|
|
|
|
func (ucase *subscriptionUseCase) Fetch(ctx context.Context, topic domain.Topic) ([]domain.Subscription, error) {
|
|
out, err := ucase.subscriptions.Fetch(ctx, topic)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("cannot fetch subscriptions for topic: %w", err)
|
|
}
|
|
|
|
return out, nil
|
|
}
|