datastore

package
v0.0.0-...-880b486 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 13, 2020 License: GPL-3.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewSQLDatastore

func NewSQLDatastore(sqlDbConfig config.SQLDBConfig, awsSession *session.Session) (*gorm.DB, *sql2.DB)

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
}

func NewDatastore

func NewDatastore(config config.Config, awsSession *session.Session) Datastore

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
}

type PostIter

type PostIter interface {
	Next(post *model.Post) bool
	Close() error
}

type TagIter

type TagIter interface {
	Next(tag *model.Tag) bool
	Close() error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL