mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
105 lines
3.3 KiB
Go
105 lines
3.3 KiB
Go
// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved.
|
|
// See License.txt for license information.
|
|
|
|
package store
|
|
|
|
import (
|
|
"github.com/mattermost/platform/model"
|
|
)
|
|
|
|
type StoreResult struct {
|
|
Data interface{}
|
|
Err *model.AppError
|
|
}
|
|
|
|
type StoreChannel chan StoreResult
|
|
|
|
func Must(sc StoreChannel) interface{} {
|
|
r := <-sc
|
|
if r.Err != nil {
|
|
panic(r.Err)
|
|
}
|
|
|
|
return r.Data
|
|
}
|
|
|
|
type Store interface {
|
|
Team() TeamStore
|
|
Channel() ChannelStore
|
|
Post() PostStore
|
|
User() UserStore
|
|
Audit() AuditStore
|
|
Session() SessionStore
|
|
Close()
|
|
}
|
|
|
|
type TeamStore interface {
|
|
Save(team *model.Team) StoreChannel
|
|
Update(team *model.Team) StoreChannel
|
|
UpdateName(name string, teamId string) StoreChannel
|
|
Get(id string) StoreChannel
|
|
GetByDomain(domain string) StoreChannel
|
|
GetTeamsForEmail(domain string) StoreChannel
|
|
}
|
|
|
|
type ChannelStore interface {
|
|
Save(channel *model.Channel) StoreChannel
|
|
Update(channel *model.Channel) StoreChannel
|
|
Get(id string) StoreChannel
|
|
Delete(channelId string, time int64) StoreChannel
|
|
GetByName(team_id string, domain string) StoreChannel
|
|
GetChannels(teamId string, userId string) StoreChannel
|
|
GetMoreChannels(teamId string, userId string) StoreChannel
|
|
|
|
SaveMember(member *model.ChannelMember) StoreChannel
|
|
GetMembers(channelId string) StoreChannel
|
|
GetMember(channelId string, userId string) StoreChannel
|
|
RemoveMember(channelId string, userId string) StoreChannel
|
|
GetExtraMembers(channelId string, limit int) StoreChannel
|
|
CheckPermissionsTo(teamId string, channelId string, userId string) StoreChannel
|
|
CheckOpenChannelPermissions(teamId string, channelId string) StoreChannel
|
|
CheckPermissionsToByName(teamId string, channelName string, userId string) StoreChannel
|
|
UpdateLastViewedAt(channelId string, userId string) StoreChannel
|
|
IncrementMentionCount(channelId string, userId string) StoreChannel
|
|
UpdateNotifyLevel(channelId string, userId string, notifyLevel string) StoreChannel
|
|
}
|
|
|
|
type PostStore interface {
|
|
Save(post *model.Post) StoreChannel
|
|
Update(post *model.Post, newMessage string, newHashtags string) StoreChannel
|
|
Get(id string) StoreChannel
|
|
Delete(postId string, time int64) StoreChannel
|
|
GetPosts(channelId string, offset int, limit int) StoreChannel
|
|
GetEtag(channelId string) StoreChannel
|
|
Search(teamId string, userId string, terms string, isHashtagSearch bool) StoreChannel
|
|
}
|
|
|
|
type UserStore interface {
|
|
Save(user *model.User) StoreChannel
|
|
Update(user *model.User, allowRoleUpdate bool) StoreChannel
|
|
UpdateUpdateAt(userId string) StoreChannel
|
|
UpdateLastPingAt(userId string, time int64) StoreChannel
|
|
UpdateLastActivityAt(userId string, time int64) StoreChannel
|
|
UpdateUserAndSessionActivity(userId string, sessionId string, time int64) StoreChannel
|
|
UpdatePassword(userId, newPassword string) StoreChannel
|
|
Get(id string) StoreChannel
|
|
GetProfiles(teamId string) StoreChannel
|
|
GetByEmail(teamId string, email string) StoreChannel
|
|
GetByUsername(teamId string, username string) StoreChannel
|
|
VerifyEmail(userId string) StoreChannel
|
|
GetEtagForProfiles(teamId string) StoreChannel
|
|
}
|
|
|
|
type SessionStore interface {
|
|
Save(session *model.Session) StoreChannel
|
|
Get(id string) StoreChannel
|
|
GetSessions(userId string) StoreChannel
|
|
Remove(sessionIdOrAlt string) StoreChannel
|
|
UpdateLastActivityAt(sessionId string, time int64) StoreChannel
|
|
}
|
|
|
|
type AuditStore interface {
|
|
Save(audit *model.Audit) StoreChannel
|
|
Get(user_id string, limit int) StoreChannel
|
|
}
|