Versions in this module Expand all Collapse all v0 v0.6.0 Jun 30, 2023 Changes in this version + const MAX_ARRAY_FIELD_NUM + var ErrInvalidID = errors.New("invalid discussion ID") + var ErrInvalidState = fmt.Errorf("discussion state is invalid, supported states are: %s", ...) + var ErrInvalidType = fmt.Errorf("discussion type is invalid, supported types are: %s", ...) + var SupportedStates = []string + var SupportedTypes = []string + func IsStateStringValid(ss string) bool + func IsTypeStringValid(ts string) bool + type Comment struct + Body string + CreatedAt time.Time + DiscussionID string + ID string + Owner user.User + UpdatedAt time.Time + UpdatedBy user.User + func (c Comment) Validate() error + type Discussion struct + Assets []string + Assignees []string + Body string + CreatedAt time.Time + ID string + Labels []string + Owner user.User + State State + Title string + Type Type + UpdatedAt time.Time + func (d Discussion) IsEmpty() bool + func (d Discussion) Validate() error + func (d Discussion) ValidateConstraint() error + type Filter struct + Assets []string + Assignees []string + DisjointAssigneeOwner bool + Labels []string + Offset int + Owner string + Size int + SortBy string + SortDirection string + State string + Type string + func (f *Filter) AssignDefault() + func (f *Filter) Validate() error + type InvalidError struct + CommentID string + DiscussionID string + func (e InvalidError) Error() string + type NotFoundError struct + CommentID string + DiscussionID string + func (e NotFoundError) Error() string + type Repository interface + Create func(ctx context.Context, ns *namespace.Namespace, discussion *Discussion) (string, error) + CreateComment func(ctx context.Context, ns *namespace.Namespace, cmt *Comment) (string, error) + DeleteComment func(ctx context.Context, commentID string, discussionID string) error + Get func(ctx context.Context, did string) (Discussion, error) + GetAll func(ctx context.Context, filter Filter) ([]Discussion, error) + GetAllComments func(ctx context.Context, discussionID string, filter Filter) ([]Comment, error) + GetComment func(ctx context.Context, commentID string, discussionID string) (Comment, error) + Patch func(ctx context.Context, discussion *Discussion) error + UpdateComment func(ctx context.Context, cmt *Comment) error + type Service struct + func NewService(discussionRepository Repository) *Service + func (s *Service) CreateComment(ctx context.Context, ns *namespace.Namespace, cmt *Comment) (string, error) + func (s *Service) CreateDiscussion(ctx context.Context, ns *namespace.Namespace, dsc *Discussion) (string, error) + func (s *Service) DeleteComment(ctx context.Context, commentID string, discussionID string) error + func (s *Service) GetComment(ctx context.Context, commentID string, discussionID string) (Comment, error) + func (s *Service) GetComments(ctx context.Context, discussionID string, filter Filter) ([]Comment, error) + func (s *Service) GetDiscussion(ctx context.Context, did string) (Discussion, error) + func (s *Service) GetDiscussions(ctx context.Context, filter Filter) ([]Discussion, error) + func (s *Service) PatchDiscussion(ctx context.Context, dsc *Discussion) error + func (s *Service) UpdateComment(ctx context.Context, cmt *Comment) error + type State string + const StateClosed + const StateOpen + func GetStateEnum(ds string) State + func (ds State) String() string + type Type string + const TypeIssues + const TypeOpenEnded + const TypeQAndA + func GetTypeEnum(dt string) Type + func (dt Type) String() string