repository

package
v1.0.0-rc.2 Latest Latest
Warning

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

Go to latest
Published: Feb 28, 2019 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrNilID 汎用エラー 引数のIDがNilです
	ErrNilID = errors.New("nil id")
	// ErrNotFound 汎用エラー 見つかりません
	ErrNotFound = errors.New("not found")
	// ErrAlreadyExists 汎用エラー 既に存在しています
	ErrAlreadyExists = errors.New("already exists")
	// ErrForbidden 汎用エラー 禁止されています
	ErrForbidden = errors.New("forbidden")
	// ErrInvalidArgs 汎用エラー 引数が不正
	ErrInvalidArgs = errors.New("invalid args")
)
View Source
var (
	// ErrChannelDepthLimitation チャンネルの深さ制限を超えている
	ErrChannelDepthLimitation = errors.New("channel depth limit exceeded")
)

Functions

This section is empty.

Types

type ACL

type ACL map[uuid.UUID]bool

ACL アクセスコントロールリスト

type ChannelRepository

type ChannelRepository interface {
	CreatePublicChannel(name string, parent, creatorID uuid.UUID) (*model.Channel, error)
	CreatePrivateChannel(name string, creatorID uuid.UUID, members []uuid.UUID) (*model.Channel, error)
	CreateChildChannel(name string, parentID, creatorID uuid.UUID) (*model.Channel, error)
	UpdateChannelAttributes(channelID uuid.UUID, visibility, forced *bool) error
	UpdateChannelTopic(channelID uuid.UUID, topic string, updaterID uuid.UUID) error
	ChangeChannelName(channelID uuid.UUID, name string) error
	ChangeChannelParent(channelID, parent uuid.UUID) error
	DeleteChannel(channelID uuid.UUID) error
	GetChannel(channelID uuid.UUID) (*model.Channel, error)
	GetChannelByMessageID(messageID uuid.UUID) (*model.Channel, error)
	GetChannelsByUserID(userID uuid.UUID) ([]*model.Channel, error)
	GetDirectMessageChannel(user1, user2 uuid.UUID) (*model.Channel, error)
	GetAllChannels() ([]*model.Channel, error)
	IsChannelPresent(name string, parent uuid.UUID) (bool, error)
	IsChannelAccessibleToUser(userID, channelID uuid.UUID) (bool, error)
	GetParentChannel(channelID uuid.UUID) (*model.Channel, error)
	GetChildrenChannelIDs(channelID uuid.UUID) ([]uuid.UUID, error)
	GetDescendantChannelIDs(channelID uuid.UUID) ([]uuid.UUID, error)
	GetAscendantChannelIDs(channelID uuid.UUID) ([]uuid.UUID, error)
	GetChannelPath(id uuid.UUID) (string, error)
	GetChannelDepth(id uuid.UUID) (int, error)
	AddPrivateChannelMember(channelID, userID uuid.UUID) error
	GetPrivateChannelMemberIDs(channelID uuid.UUID) ([]uuid.UUID, error)
	IsUserPrivateChannelMember(channelID, userID uuid.UUID) (bool, error)
	SubscribeChannel(userID, channelID uuid.UUID) error
	UnsubscribeChannel(userID, channelID uuid.UUID) error
	GetSubscribingUserIDs(channelID uuid.UUID) ([]uuid.UUID, error)
	GetSubscribedChannelIDs(userID uuid.UUID) ([]uuid.UUID, error)
}

ChannelRepository チャンネルリポジトリ

type ClipRepository

type ClipRepository interface {
	GetClipFolder(id uuid.UUID) (*model.ClipFolder, error)
	GetClipFolders(userID uuid.UUID) ([]*model.ClipFolder, error)
	CreateClipFolder(userID uuid.UUID, name string) (*model.ClipFolder, error)
	UpdateClipFolderName(id uuid.UUID, name string) error
	DeleteClipFolder(id uuid.UUID) error
	GetClipMessage(id uuid.UUID) (*model.Clip, error)
	GetClipMessages(folderID uuid.UUID) ([]*model.Clip, error)
	GetClipMessagesByUser(userID uuid.UUID) ([]*model.Clip, error)
	CreateClip(messageID, folderID, userID uuid.UUID) (*model.Clip, error)
	ChangeClipFolder(clipID, folderID uuid.UUID) error
	DeleteClip(id uuid.UUID) error
}

ClipRepository クリップリポジトリ

type DeviceRepository

type DeviceRepository interface {
	RegisterDevice(userID uuid.UUID, token string) (*model.Device, error)
	UnregisterDevice(token string) (err error)
	GetDevicesByUserID(user uuid.UUID) (result []*model.Device, err error)
	GetDeviceTokensByUserID(user uuid.UUID) (result []string, err error)
	GetAllDevices() (result []*model.Device, err error)
	GetAllDeviceTokens() (result []string, err error)
}

DeviceRepository FCMデバイスリポジトリ

type FileRepository

type FileRepository interface {
	OpenFile(fileID uuid.UUID) (*model.File, io.ReadCloser, error)
	OpenThumbnailFile(fileID uuid.UUID) (*model.File, io.ReadCloser, error)
	GetFileMeta(fileID uuid.UUID) (*model.File, error)
	DeleteFile(fileID uuid.UUID) error
	GenerateIconFile(salt string) (uuid.UUID, error)
	SaveFile(name string, src io.Reader, size int64, mime string, fType string, creatorID uuid.UUID) (*model.File, error)
	SaveFileWithACL(name string, src io.Reader, size int64, mime string, fType string, creatorID uuid.UUID, read ACL) (*model.File, error)
	RegenerateThumbnail(fileID uuid.UUID) (bool, error)
	IsFileAccessible(fileID, userID uuid.UUID) (bool, error)
}

FileRepository ファイルリポジトリ

type MessageReportRepository

type MessageReportRepository interface {
	CreateMessageReport(messageID, reporterID uuid.UUID, reason string) error
	GetMessageReports(offset, limit int) ([]*model.MessageReport, error)
	GetMessageReportsByMessageID(messageID uuid.UUID) ([]*model.MessageReport, error)
	GetMessageReportsByReporterID(reporterID uuid.UUID) ([]*model.MessageReport, error)
}

MessageReportRepository メッセージ通報リポジトリ

type MessageRepository

type MessageRepository interface {
	CreateMessage(userID, channelID uuid.UUID, text string) (*model.Message, error)
	UpdateMessage(messageID uuid.UUID, text string) error
	DeleteMessage(messageID uuid.UUID) error
	GetMessageByID(messageID uuid.UUID) (*model.Message, error)
	GetMessagesByChannelID(channelID uuid.UUID, limit, offset int) ([]*model.Message, error)
	SetMessageUnread(userID, messageID uuid.UUID) error
	GetUnreadMessagesByUserID(userID uuid.UUID) ([]*model.Message, error)
	DeleteUnreadsByMessageID(messageID uuid.UUID) error
	DeleteUnreadsByChannelID(channelID, userID uuid.UUID) error
	GetChannelLatestMessagesByUserID(userID uuid.UUID, limit int, subscribeOnly bool) ([]*model.Message, error)
}

MessageRepository メッセージリポジトリ

type MessageStampRepository

type MessageStampRepository interface {
	AddStampToMessage(messageID, stampID, userID uuid.UUID) (ms *model.MessageStamp, err error)
	RemoveStampFromMessage(messageID, stampID, userID uuid.UUID) (err error)
	GetMessageStamps(messageID uuid.UUID) (stamps []*model.MessageStamp, err error)
	GetUserStampHistory(userID uuid.UUID) (h []*model.UserStampHistory, err error)
}

MessageStampRepository メッセージスタンプリポジトリ

type MuteRepository

type MuteRepository interface {
	MuteChannel(userID, channelID uuid.UUID) error
	UnmuteChannel(userID, channelID uuid.UUID) error
	GetMutedChannelIDs(userID uuid.UUID) ([]uuid.UUID, error)
	GetMuteUserIDs(channelID uuid.UUID) ([]uuid.UUID, error)
	IsChannelMuted(userID, channelID uuid.UUID) (bool, error)
}

type PinRepository

type PinRepository interface {
	CreatePin(messageID, userID uuid.UUID) (uuid.UUID, error)
	GetPin(id uuid.UUID) (*model.Pin, error)
	IsPinned(messageID uuid.UUID) (bool, error)
	DeletePin(id uuid.UUID) error
	GetPinsByChannelID(channelID uuid.UUID) ([]*model.Pin, error)
}

PinRepository ピンリポジトリ

type StampRepository

type StampRepository interface {
	CreateStamp(name string, fileID, userID uuid.UUID) (s *model.Stamp, err error)
	UpdateStamp(id uuid.UUID, name string, fileID uuid.UUID) error
	GetStamp(id uuid.UUID) (s *model.Stamp, err error)
	DeleteStamp(id uuid.UUID) (err error)
	GetAllStamps() (stamps []*model.Stamp, err error)
	StampExists(id uuid.UUID) (bool, error)
	IsStampNameDuplicate(name string) (bool, error)
}

StampRepository スタンプリポジトリ

type StarRepository

type StarRepository interface {
	AddStar(userID, channelID uuid.UUID) error
	RemoveStar(userID, channelID uuid.UUID) error
	GetStaredChannels(userID uuid.UUID) ([]uuid.UUID, error)
}

StarRepository チャンネルスターリポジトリ

type TagRepository

type TagRepository interface {
	CreateTag(name string, restricted bool, tagType string) (*model.Tag, error)
	ChangeTagType(id uuid.UUID, tagType string) error
	ChangeTagRestrict(id uuid.UUID, restrict bool) error
	GetAllTags() ([]*model.Tag, error)
	GetTagByID(id uuid.UUID) (*model.Tag, error)
	GetTagByName(name string) (*model.Tag, error)
	GetOrCreateTagByName(name string) (*model.Tag, error)
	AddUserTag(userID, tagID uuid.UUID) error
	ChangeUserTagLock(userID, tagID uuid.UUID, locked bool) error
	DeleteUserTag(userID, tagID uuid.UUID) error
	GetUserTag(userID, tagID uuid.UUID) (*model.UsersTag, error)
	GetUserTagsByUserID(userID uuid.UUID) ([]*model.UsersTag, error)
	GetUsersByTag(tag string) ([]*model.User, error)
	GetUserIDsByTag(tag string) ([]uuid.UUID, error)
	GetUserIDsByTagID(tagID uuid.UUID) ([]uuid.UUID, error)
}

TagRepository ユーザータグリポジトリ

type UpdateUserGroupNameArgs

type UpdateUserGroupNameArgs struct {
	Name        string
	Description sql.NullString
	AdminUserID uuid.NullUUID
}

UpdateUserGroupNameArgs ユーザーグループ更新引数

type UserGroupRepository

type UserGroupRepository interface {
	CreateUserGroup(name, description string, adminID uuid.UUID) (*model.UserGroup, error)
	UpdateUserGroup(id uuid.UUID, args UpdateUserGroupNameArgs) error
	DeleteUserGroup(id uuid.UUID) error
	GetUserGroup(id uuid.UUID) (*model.UserGroup, error)
	GetUserGroupByName(name string) (*model.UserGroup, error)
	GetUserBelongingGroupIDs(userID uuid.UUID) ([]uuid.UUID, error)
	GetAllUserGroups() ([]*model.UserGroup, error)
	AddUserToGroup(userID, groupID uuid.UUID) error
	RemoveUserFromGroup(userID, groupID uuid.UUID) error
	GetUserGroupMemberIDs(groupID uuid.UUID) ([]uuid.UUID, error)
}

UserGroupRepository ユーザーグループリポジトリー

type UserRepository

type UserRepository interface {
	CreateUser(name, password string, role gorbac.Role) (*model.User, error)
	GetUser(id uuid.UUID) (*model.User, error)
	GetUserByName(name string) (*model.User, error)
	GetUsers() ([]*model.User, error)
	UserExists(id uuid.UUID) (bool, error)
	ChangeUserDisplayName(id uuid.UUID, displayName string) error
	ChangeUserPassword(id uuid.UUID, password string) error
	ChangeUserIcon(id, fileID uuid.UUID) error
	ChangeUserTwitterID(id uuid.UUID, twitterID string) error
	ChangeUserAccountStatus(id uuid.UUID, status model.UserAccountStatus) error
	UpdateUserLastOnline(id uuid.UUID, time time.Time) (err error)
	IsUserOnline(id uuid.UUID) bool
	GetUserLastOnline(id uuid.UUID) (time.Time, error)
	GetHeartbeatStatus(channelID uuid.UUID) (model.HeartbeatStatus, bool)
	UpdateHeartbeatStatus(userID, channelID uuid.UUID, status string)
}

UserRepository ユーザーリポジトリ

type WebhookRepository

type WebhookRepository interface {
	CreateWebhook(name, description string, channelID, creatorID, iconFileID uuid.UUID) (model.Webhook, error)
	UpdateWebhook(id uuid.UUID, name, description *string, channelID uuid.UUID) error
	DeleteWebhook(id uuid.UUID) error
	GetWebhook(id uuid.UUID) (model.Webhook, error)
	GetAllWebhooks() ([]model.Webhook, error)
	GetWebhooksByCreator(creatorID uuid.UUID) ([]model.Webhook, error)
}

WebhookRepository Webhookボットリポジトリ

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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