Documentation
¶
Index ¶
- type Course
- type CourseClient
- type DeletedSubscription
- type Matrix
- type MatrixClient
- type Service
- func (s *Service) CreateSubscription(ctx context.Context, sub *Subscription) error
- func (s *Service) DeleteSubscription(_ context.Context, sub *DeletedSubscription) error
- func (s *Service) Subscription(_ context.Context, subscriptionUUID uuid.UUID) (Subscription, error)
- func (s *Service) Subscriptions(_ context.Context, filters *SubscriptionFilters) ([]Subscription, error)
- func (s *Service) UpdateSubscription(_ context.Context, sub *Subscription) error
- type ServiceConfiguration
- type ServiceInterface
- type Subscription
- type SubscriptionFilters
- type SubscriptionRepository
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CourseClient ¶
type DeletedSubscription ¶
type MatrixClient ¶
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
func NewService ¶
func NewService(cfgs ...ServiceConfiguration) (*Service, error)
NewService creates a new domain Service instance.
func (*Service) CreateSubscription ¶
func (s *Service) CreateSubscription(ctx context.Context, sub *Subscription) error
func (*Service) DeleteSubscription ¶
func (s *Service) DeleteSubscription(_ context.Context, sub *DeletedSubscription) error
func (*Service) Subscription ¶
func (*Service) Subscriptions ¶
func (s *Service) Subscriptions(_ context.Context, filters *SubscriptionFilters) ([]Subscription, error)
func (*Service) UpdateSubscription ¶
func (s *Service) UpdateSubscription(_ context.Context, sub *Subscription) error
type ServiceConfiguration ¶
func WithCourseClient ¶
func WithCourseClient(courses CourseClient) ServiceConfiguration
func WithLogger ¶
func WithLogger(l log.Logger) ServiceConfiguration
WithLogger injects the logger to the domain Service.
func WithMatrixClient ¶
func WithMatrixClient(matrices MatrixClient) ServiceConfiguration
func WithSubscriptionRepository ¶
func WithSubscriptionRepository(sr SubscriptionRepository) ServiceConfiguration
WithSubscriptionRepository injects the subscription repository to the domain Service.
type ServiceInterface ¶
type ServiceInterface interface { Subscription(ctx context.Context, subscriptionUUID uuid.UUID) (Subscription, error) Subscriptions(ctx context.Context, filters *SubscriptionFilters) ([]Subscription, error) CreateSubscription(ctx context.Context, subscription *Subscription) error UpdateSubscription(ctx context.Context, subscription *Subscription) error DeleteSubscription(ctx context.Context, subscription *DeletedSubscription) error }
ServiceInterface defines the domains Service interface.
type Subscription ¶
type Subscription struct { UUID uuid.UUID `db:"uuid" json:"uuid"` UserUUID uuid.UUID `db:"user_uuid" json:"user_uuid,omitempty"` Course *Course `db:"courses" json:"course,omitempty"` CourseUUID *uuid.UUID `db:"course_uuid" json:"course_uuid,omitempty"` Matrix *Matrix `db:"matrices" json:"matrix,omitempty"` MatrixUUID *uuid.UUID `db:"matrix_uuid" json:"matrix_uuid,omitempty"` Role string `db:"role" json:"role"` Reason *string `db:"reason" json:"reason,omitempty"` ExpiresAt *time.Time `db:"expires_at" json:"expires_at,omitempty"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` }
type SubscriptionFilters ¶
type SubscriptionRepository ¶
type SubscriptionRepository interface { Subscription(subscriptionUUID uuid.UUID) (Subscription, error) Subscriptions() ([]Subscription, error) CreateSubscription(subscription *Subscription) error CreateSubscriptionWithoutMatrix(subscription *Subscription) error UpdateSubscription(subscription *Subscription) error DeleteSubscription(subscription *DeletedSubscription) error CourseSubscriptions(courseUUID uuid.UUID) ([]Subscription, error) UserSubscriptions(userUUID uuid.UUID) ([]Subscription, error) }
Click to show internal directories.
Click to hide internal directories.