Documentation
¶
Index ¶
- Variables
- type ACL
- type ChannelRepository
- type ClipRepository
- type DeviceRepository
- type FileRepository
- type MessageReportRepository
- type MessageRepository
- type MessageStampRepository
- type MuteRepository
- type PinRepository
- type Repository
- type StampRepository
- type StarRepository
- type TagRepository
- type UpdateUserGroupNameArgs
- type UserGroupRepository
- type UserRepository
- type WebhookRepository
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 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 Repository ¶
type Repository interface {
Sync() (bool, error)
GetFS() storage.FileStorage
UserRepository
UserGroupRepository
TagRepository
ChannelRepository
MessageRepository
MessageReportRepository
MessageStampRepository
StampRepository
ClipRepository
MuteRepository
StarRepository
PinRepository
DeviceRepository
FileRepository
WebhookRepository
}
Repository データリポジトリ
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ボットリポジトリ
Source Files
¶
Click to show internal directories.
Click to hide internal directories.