Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewSQLDatastore ¶
Types ¶
type AutoPostDiscussionIter ¶
type AutoPostDiscussionIter interface { Next(discussion *model.DiscussionAutoPost) bool Close() error }
type ContentIter ¶
type ContentIter interface { Next(content *model.ImportedContent) bool Close() error }
type DFAIter ¶
type DFAIter interface { Next(dfa *model.DiscussionFlairTemplateAccess) bool Close() error }
type Datastore ¶
type Datastore interface { GetDiscussionByID(ctx context.Context, id string) (*model.Discussion, error) GetDiscussionsByIDs(ctx context.Context, ids []string) (map[string]*model.Discussion, error) GetDiscussionsAutoPost(ctx context.Context) AutoPostDiscussionIter GetDiscussionByModeratorID(ctx context.Context, moderatorID string) (*model.Discussion, error) CreateModerator(ctx context.Context, moderator model.Moderator) (*model.Moderator, error) GetModeratorByID(ctx context.Context, id string) (*model.Moderator, error) GetModeratorByUserID(ctx context.Context, id string) (*model.Moderator, error) GetModeratorByUserIDAndDiscussionID(ctx context.Context, userID, discussionID string) (*model.Moderator, error) ListDiscussions(ctx context.Context) (*model.DiscussionsConnection, error) UpsertDiscussion(ctx context.Context, discussion model.Discussion) (*model.Discussion, error) AssignFlair(ctx context.Context, participant model.Participant, flairID *string) (*model.Participant, error) GetFlairByID(ctx context.Context, id string) (*model.Flair, error) GetFlairsByUserID(ctx context.Context, userID string) ([]*model.Flair, error) RemoveFlair(ctx context.Context, flair model.Flair) (*model.Flair, error) UpsertFlair(ctx context.Context, flair model.Flair) (*model.Flair, error) ListFlairTemplates(ctx context.Context, query *string) ([]*model.FlairTemplate, error) GetFlairTemplateByID(ctx context.Context, id string) (*model.FlairTemplate, error) UpsertFlairTemplate(ctx context.Context, flairTemplate model.FlairTemplate) (*model.FlairTemplate, error) RemoveFlairTemplate(ctx context.Context, flairTemplate model.FlairTemplate) (*model.FlairTemplate, error) GetTotalParticipantCountByDiscussionID(ctx context.Context, discussionID string) int GetParticipantByID(ctx context.Context, participantID string) (*model.Participant, error) GetParticipantsByIDs(ctx context.Context, ids []string) (map[string]*model.Participant, error) GetParticipantsByDiscussionID(ctx context.Context, id string) ([]model.Participant, error) GetParticipantsByDiscussionIDUserID(ctx context.Context, discussionID string, userID string) ([]model.Participant, error) GetModeratorParticipantsByDiscussionID(ctx context.Context, discussionID string) ([]model.Participant, error) UpsertParticipant(ctx context.Context, participant model.Participant) (*model.Participant, error) GetPostsByDiscussionIDIter(ctx context.Context, discussionID string) PostIter GetPostsByDiscussionIDFromCursorIter(ctx context.Context, discussionID string, cursor string, limit int) PostIter GetPostsConnectionByDiscussionID(ctx context.Context, discussionID string, cursor string, limit int) (*model.PostsConnection, error) GetLastPostByDiscussionID(ctx context.Context, discussionID string, minutes int) (*model.Post, error) GetPostContentByID(ctx context.Context, id string) (*model.PostContent, error) PutPost(ctx context.Context, tx *sql2.Tx, post model.Post) (*model.Post, error) PutPostContent(ctx context.Context, tx *sql2.Tx, postContent model.PostContent) error DeletePostByID(ctx context.Context, postID string, deletedReasonCode model.PostDeletedReason) (*model.Post, error) DeleteAllParticipantPosts(ctx context.Context, discussionID string, participantID string, deletedReasonCode model.PostDeletedReason) (int, error) GetUserProfileByID(ctx context.Context, id string) (*model.UserProfile, error) GetUserProfileByUserID(ctx context.Context, userID string) (*model.UserProfile, error) GetSocialInfosByUserProfileID(ctx context.Context, userProfileID string) ([]model.SocialInfo, error) UpsertSocialInfo(ctx context.Context, obj model.SocialInfo) (*model.SocialInfo, error) CreateOrUpdateUserProfile(ctx context.Context, userProfile model.UserProfile) (*model.UserProfile, bool, error) UpsertUser(ctx context.Context, user model.User) (*model.User, error) GetUserByID(ctx context.Context, userID string) (*model.User, error) GetUserDevicesByUserID(ctx context.Context, userID string) ([]model.UserDevice, error) UpsertUserDevice(ctx context.Context, userDevice model.UserDevice) (*model.UserDevice, error) GetViewersByIDs(ctx context.Context, viewerIDs []string) (map[string]*model.Viewer, error) UpsertViewer(ctx context.Context, viewer model.Viewer) (*model.Viewer, error) GetPostByID(ctx context.Context, postID string) (*model.Post, error) PutActivity(ctx context.Context, tx *sql2.Tx, post *model.Post) error PutMediaRecord(ctx context.Context, tx *sql2.Tx, media model.Media) error GetMediaRecordByID(ctx context.Context, mediaID string) (*model.Media, error) GetImportedContentByID(ctx context.Context, id string) (*model.ImportedContent, error) GetImportedContentTags(ctx context.Context, id string) TagIter GetDiscussionTags(ctx context.Context, id string) TagIter GetMatchingTags(ctx context.Context, discussionID, importedContentID string) ([]string, error) PutImportedContent(ctx context.Context, tx *sql2.Tx, ic model.ImportedContent) (*model.ImportedContent, error) PutImportedContentTags(ctx context.Context, tx *sql2.Tx, tag model.Tag) (*model.Tag, error) PutDiscussionTags(ctx context.Context, tx *sql2.Tx, tag model.Tag) (*model.Tag, error) DeleteDiscussionTags(ctx context.Context, tx *sql2.Tx, tag model.Tag) (*model.Tag, error) GetImportedContentByDiscussionID(ctx context.Context, discussionID string, limit int) ContentIter GetScheduledImportedContentByDiscussionID(ctx context.Context, discussionID string) ContentIter PutImportedContentDiscussionQueue(ctx context.Context, discussionID, contentID string, postedAt *time.Time, matchingTags []string) (*model.ContentQueueRecord, error) UpdateImportedContentDiscussionQueue(ctx context.Context, discussionID, contentID string, postedAt *time.Time) (*model.ContentQueueRecord, error) // Helper functions PostIterCollect(ctx context.Context, iter PostIter) ([]*model.Post, error) DiscussionAutoPostIterCollect(ctx context.Context, iter AutoPostDiscussionIter) ([]*model.DiscussionAutoPost, error) TagIterCollect(ctx context.Context, iter TagIter) ([]*model.Tag, error) ContentIterCollect(ctx context.Context, iter ContentIter) ([]*model.ImportedContent, error) DiscussionIterCollect(ctx context.Context, iter DiscussionIter) ([]*model.Discussion, error) FlairTemplatesIterCollect(ctx context.Context, iter DFAIter) ([]*model.FlairTemplate, error) DiscussionInviteIterCollect(ctx context.Context, iter DiscussionInviteIter) ([]*model.DiscussionInvite, error) AccessRequestIterCollect(ctx context.Context, iter DiscussionAccessRequestIter) ([]*model.DiscussionAccessRequest, error) GetPublicDiscussions(ctx context.Context) DiscussionIter GetDiscussionsForFlairTemplateByUserID(ctx context.Context, userID string) DiscussionIter GetDiscussionsForUserAccessByUserID(ctx context.Context, userID string) DiscussionIter GetDiscussionFlairTemplatesAccessByDiscussionID(ctx context.Context, discussionID string) DFAIter UpsertDiscussionFlairTemplatesAccess(ctx context.Context, tx *sql2.Tx, discussionID, flairTemplateID string) (*model.DiscussionFlairTemplateAccess, error) UpsertDiscussionUserAccess(ctx context.Context, tx *sql2.Tx, discussionID, userID string) (*model.DiscussionUserAccess, error) DeleteDiscussionFlairTemplatesAccess(ctx context.Context, tx *sql2.Tx, discussionID, flairTemplateID string) (*model.DiscussionFlairTemplateAccess, error) DeleteDiscussionUserAccess(ctx context.Context, tx *sql2.Tx, discussionID, userID string) (*model.DiscussionUserAccess, error) GetDiscussionInviteByID(ctx context.Context, id string) (*model.DiscussionInvite, error) GetDiscussionRequestAccessByID(ctx context.Context, id string) (*model.DiscussionAccessRequest, error) GetDiscussionInvitesByUserIDAndStatus(ctx context.Context, userID string, status model.InviteRequestStatus) DiscussionInviteIter GetSentDiscussionInvitesByUserID(ctx context.Context, userID string) DiscussionInviteIter GetDiscussionAccessRequestsByDiscussionID(ctx context.Context, discussionID string) DiscussionAccessRequestIter GetSentDiscussionAccessRequestsByUserID(ctx context.Context, userID string) DiscussionAccessRequestIter GetInviteLinksByDiscussionID(ctx context.Context, discussionID string) (*model.DiscussionLinkAccess, error) PutDiscussionInviteRecord(ctx context.Context, tx *sql2.Tx, invite model.DiscussionInvite) (*model.DiscussionInvite, error) PutDiscussionAccessRequestRecord(ctx context.Context, tx *sql2.Tx, request model.DiscussionAccessRequest) (*model.DiscussionAccessRequest, error) UpdateDiscussionInviteRecord(ctx context.Context, tx *sql2.Tx, invite model.DiscussionInvite) (*model.DiscussionInvite, error) UpdateDiscussionAccessRequestRecord(ctx context.Context, tx *sql2.Tx, request model.DiscussionAccessRequest) (*model.DiscussionAccessRequest, error) UpsertInviteLinksByDiscussionID(ctx context.Context, tx *sql.Tx, input model.DiscussionLinkAccess) (*model.DiscussionLinkAccess, error) // TXN BeginTx(ctx context.Context) (*sql2.Tx, error) RollbackTx(ctx context.Context, tx *sql2.Tx) error CommitTx(ctx context.Context, tx *sql2.Tx) error }
type DiscussionAccessRequestIter ¶
type DiscussionAccessRequestIter interface { Next(request *model.DiscussionAccessRequest) bool Close() error }
type DiscussionInviteIter ¶
type DiscussionInviteIter interface { Next(invite *model.DiscussionInvite) bool Close() error }
type DiscussionIter ¶
type DiscussionIter interface { Next(discussion *model.Discussion) bool Close() error }
Source Files ¶
- datastore.go
- discussion.go
- discussion_access.go
- flair.go
- flair_template.go
- imported_content.go
- invite_request.go
- media.go
- mention.go
- moderator.go
- participant.go
- post.go
- post_content.go
- prepared_statements.go
- social_info.go
- test_setup.go
- transaction.go
- user.go
- user_device.go
- user_profile.go
- viewer.go
Click to show internal directories.
Click to hide internal directories.