api

package
v3.6.6+incompatible Latest Latest
Warning

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

Go to latest
Published: Apr 11, 2017 License: AGPL-3.0, Apache-2.0 Imports: 60 Imported by: 0

Documentation

Index

Constants

View Source
const (
	USER_PASSWORD              = "passwd"
	CHANNEL_TYPE               = model.CHANNEL_OPEN
	FUZZ_USER_EMAIL_PREFIX_LEN = 10
	BTEST_TEAM_DISPLAY_NAME    = "TestTeam"
	BTEST_TEAM_NAME            = "z-z-testdomaina"
	BTEST_TEAM_EMAIL           = "test@nowhere.com"
	BTEST_TEAM_TYPE            = model.TEAM_OPEN
	BTEST_USER_NAME            = "Mr. Testing Tester"
	BTEST_USER_EMAIL           = "success+ttester@simulator.amazonses.com"
	BTEST_USER_PASSWORD        = "passwd"
)
View Source
const (
	CMD_EXPAND   = "expand"
	CMD_COLLAPSE = "collapse"
)
View Source
const (
	MaxEmojiFileSize = 1000 * 1024 // 1 MB
	MaxEmojiWidth    = 128
	MaxEmojiHeight   = 128
)
View Source
const (
	/*
	  EXIF Image Orientations
	  1        2       3      4         5            6           7          8

	  888888  888888      88  88      8888888888  88                  88  8888888888
	  88          88      88  88      88  88      88  88          88  88      88  88
	  8888      8888    8888  8888    88          8888888888  8888888888          88
	  88          88      88  88
	  88          88  888888  888888
	*/
	Upright            = 1
	UprightMirrored    = 2
	UpsideDown         = 3
	UpsideDownMirrored = 4
	RotatedCWMirrored  = 5
	RotatedCCW         = 6
	RotatedCCWMirrored = 7
	RotatedCW          = 8

	MaxImageSize = 6048 * 4032 // 24 megapixels, roughly 36MB as a raw image
)
View Source
const (
	EXPIRED_LICENSE_ERROR = "api.license.add_license.expired.app_error"
	INVALID_LICENSE_ERROR = "api.license.add_license.invalid.app_error"
)
View Source
const (
	TRIGGERWORDS_FULL       = 0
	TRIGGERWORDS_STARTSWITH = 1
)
View Source
const (
	WRITE_WAIT                = 30 * time.Second
	PONG_WAIT                 = 100 * time.Second
	PING_PERIOD               = (PONG_WAIT * 6) / 10
	AUTH_TIMEOUT              = 5 * time.Second
	WEBCONN_MEMBER_CACHE_TIME = 1000 * 60 * 30 // 30 minutes
)
View Source
const (
	DEADLOCK_TICKER = 15 * time.Second // check every 15 seconds
	DEADLOCK_WARN   = 4096             // number of buffered messages before printing stack trace
)
View Source
const (
	CMD_AWAY = "away"
)
View Source
const (
	CMD_ECHO = "echo"
)
View Source
const (
	CMD_INVITE_PEOPLE = "invite_people"
)
View Source
const (
	CMD_JOIN = "join"
)
View Source
const (
	CMD_LOADTEST = "loadtest"
)
View Source
const (
	CMD_LOGOUT = "logout"
)
View Source
const (
	CMD_ME = "me"
)
View Source
const (
	CMD_MSG = "msg"
)
View Source
const (
	CMD_OFFLINE = "offline"
)
View Source
const (
	CMD_ONLINE = "online"
)
View Source
const (
	CMD_SHORTCUTS = "shortcuts"
)
View Source
const (
	CMD_SHRUG = "shrug"
)
View Source
const (
	EMAIL_BATCHING_TASK_NAME = "Email Batching"
)
View Source
const (
	SOCKET_MAX_MESSAGE_SIZE_KB = 8 * 1024 // 8KB
)
View Source
const TIME_TO_WAIT_FOR_CONNECTIONS_TO_CLOSE_ON_SERVER_SHUTDOWN = time.Second

Variables

View Source
var (
	TEAM_NAME_LEN            = utils.Range{10, 20}
	TEAM_DOMAIN_NAME_LEN     = utils.Range{10, 20}
	TEAM_EMAIL_LEN           = utils.Range{15, 30}
	USER_NAME_LEN            = utils.Range{5, 20}
	USER_EMAIL_LEN           = utils.Range{15, 30}
	CHANNEL_DISPLAY_NAME_LEN = utils.Range{10, 20}
	CHANNEL_NAME_LEN         = utils.Range{5, 20}
	POST_MESSAGE_LEN         = utils.Range{100, 400}
	POST_HASHTAGS_NUM        = utils.Range{5, 10}
	POST_MENTIONS_NUM        = utils.Range{0, 3}
	TEST_IMAGE_FILENAMES     = []string{"test.png", "testjpg.jpg", "testgif.gif"}
)

Functions

func ActivateMfa

func ActivateMfa(userId, token string) *model.AppError

func AddNotificationEmailToBatch

func AddNotificationEmailToBatch(user *model.User, post *model.Post, team *model.Team) *model.AppError

func AddSessionToCache

func AddSessionToCache(session *model.Session)

func AddStatusCache

func AddStatusCache(status *model.Status)

func AddStatusCacheSkipClusterSend

func AddStatusCacheSkipClusterSend(status *model.Status)

func AddUserToChannel added in v1.1.0

func AddUserToChannel(user *model.User, channel *model.Channel) (*model.ChannelMember, *model.AppError)

func ApiAdminSystemRequired

func ApiAdminSystemRequired(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler

func ApiAdminSystemRequiredTrustRequester

func ApiAdminSystemRequiredTrustRequester(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler

func ApiAppHandler

func ApiAppHandler(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler

func ApiAppHandlerTrustRequester

func ApiAppHandlerTrustRequester(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler

func ApiAppHandlerTrustRequesterIndependent

func ApiAppHandlerTrustRequesterIndependent(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler

func ApiUserRequired

func ApiUserRequired(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler

func ApiUserRequiredActivity

func ApiUserRequiredActivity(h func(*Context, http.ResponseWriter, *http.Request), isUserActivity bool) http.Handler

func ApiUserRequiredMfa

func ApiUserRequiredMfa(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler

func ApiUserRequiredTrustRequester

func ApiUserRequiredTrustRequester(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler

func ApiWebSocketHandler

func ApiWebSocketHandler(wh func(*model.WebSocketRequest) (map[string]interface{}, *model.AppError)) *webSocketHandler

func AppHandler

func AppHandler(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler

func AppHandlerIndependent

func AppHandlerIndependent(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler

func AppHandlerTrustRequester

func AppHandlerTrustRequester(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler

func AuthorizeOAuthUser

func AuthorizeOAuthUser(service, code, state, redirectUri string) (io.ReadCloser, string, map[string]string, *model.AppError)

func CanManageChannel

func CanManageChannel(c *Context, channel *model.Channel) bool

func CheckIfRolesGrantPermission

func CheckIfRolesGrantPermission(roles []string, permissionId string) bool

func CheckUserDomain

func CheckUserDomain(user *model.User, domains string) bool

Check that a user's email domain matches a list of space-delimited domains as a string.

func ClearStatusCache

func ClearStatusCache()

func CompleteSwitchWithOAuth added in v1.4.0

func CompleteSwitchWithOAuth(c *Context, w http.ResponseWriter, r *http.Request, service string, userData io.ReadCloser, email string)

func CreateBasicUser

func CreateBasicUser(client *model.Client) *model.AppError

Basic test team and user so you always know one

func CreateChannel

func CreateChannel(c *Context, channel *model.Channel, addMember bool) (*model.Channel, *model.AppError)

func CreateCommandPost

func CreateCommandPost(c *Context, post *model.Post, response *model.CommandResponse)

func CreateDefaultChannels

func CreateDefaultChannels(c *Context, teamId string) ([]*model.Channel, *model.AppError)

func CreateDirectChannel

func CreateDirectChannel(userId string, otherUserId string) (*model.Channel, *model.AppError)

func CreateOAuthUser added in v1.4.0

func CreateOAuthUser(c *Context, w http.ResponseWriter, r *http.Request, service string, userData io.Reader, teamId string) *model.User

func CreatePost

func CreatePost(c *Context, post *model.Post, triggerWebhooks bool) (*model.Post, *model.AppError)

func CreateTeam

func CreateTeam(c *Context, team *model.Team) *model.Team

func CreateUser

func CreateUser(user *model.User) (*model.User, *model.AppError)

func CreateWebhookPost added in v1.2.1

func CreateWebhookPost(c *Context, channelId, text, overrideUsername, overrideIconUrl string, props model.StringInterface, postType string) (*model.Post, *model.AppError)

func DeactivateMfa

func DeactivateMfa(userId string) *model.AppError

func DeleteFlaggedPost

func DeleteFlaggedPost(userId string, post *model.Post)

func DeletePostFiles

func DeletePostFiles(post *model.Post)

func DoesStatusAllowPushNotification

func DoesStatusAllowPushNotification(user *model.User, status *model.Status, channelId string) bool

func FindTeamByName

func FindTeamByName(name string) bool

func GetAllStatuses

func GetAllStatuses() map[string]*model.Status

func GetAllTeamListings

func GetAllTeamListings(c *Context, w http.ResponseWriter, r *http.Request)

func GetAuthData

func GetAuthData(code string) *model.AuthData

func GetAuthorizationCode

func GetAuthorizationCode(c *Context, service string, props map[string]string, loginHint string) (string, *model.AppError)

func GetIpAddress

func GetIpAddress(r *http.Request) string

func GetLogs

func GetLogs() ([]string, *model.AppError)

func GetProtocol

func GetProtocol(r *http.Request) string

func GetSession added in v1.2.1

func GetSession(token string) *model.Session

func GetStatus

func GetStatus(userId string) (*model.Status, *model.AppError)

func GetStatusFromCache

func GetStatusFromCache(userId string) *model.Status

func GetStatusesByIds

func GetStatusesByIds(userIds []string) (map[string]interface{}, *model.AppError)

func Handle404

func Handle404(w http.ResponseWriter, r *http.Request)

func HandleEtag

func HandleEtag(etag string, routeName string, w http.ResponseWriter, r *http.Request) bool

func HasPermissionTo

func HasPermissionTo(user *model.User, permission *model.Permission) bool

func HasPermissionToChannel

func HasPermissionToChannel(user *model.User, teamMember *model.TeamMember, channelMember *model.ChannelMember, permission *model.Permission) bool

func HasPermissionToChannelByPostContext

func HasPermissionToChannelByPostContext(c *Context, postId string, permission *model.Permission) bool

func HasPermissionToChannelContext

func HasPermissionToChannelContext(c *Context, channelId string, permission *model.Permission) bool

func HasPermissionToContext

func HasPermissionToContext(c *Context, permission *model.Permission) bool

func HasPermissionToCurrentTeamContext

func HasPermissionToCurrentTeamContext(c *Context, permission *model.Permission) bool

func HasPermissionToTeam

func HasPermissionToTeam(user *model.User, teamMember *model.TeamMember, permission *model.Permission) bool

func HasPermissionToTeamContext

func HasPermissionToTeamContext(c *Context, teamId string, permission *model.Permission) bool

func HasPermissionToUser

func HasPermissionToUser(c *Context, userId string) bool

func HubRegister

func HubRegister(webConn *WebConn)

func HubStart

func HubStart()

func HubStop

func HubStop()

func HubUnregister

func HubUnregister(webConn *WebConn)

func ImportChannel

func ImportChannel(channel *model.Channel) *model.Channel

func ImportFile

func ImportFile(file io.Reader, teamId string, channelId string, userId string, fileName string) (*model.FileInfo, error)

func ImportIncomingWebhookPost

func ImportIncomingWebhookPost(post *model.Post, props model.StringInterface)

func ImportPost

func ImportPost(post *model.Post)

func ImportUser

func ImportUser(team *model.Team, user *model.User) *model.User

func InitAdmin

func InitAdmin()

func InitApi

func InitApi()

func InitChannel

func InitChannel()

func InitCommand

func InitCommand()

func InitDeprecated

func InitDeprecated()

func InitEmailBatching

func InitEmailBatching()

func InitEmoji

func InitEmoji()

func InitFile

func InitFile()

func InitGeneral

func InitGeneral()

func InitLicense

func InitLicense()

func InitOAuth

func InitOAuth()

func InitPost

func InitPost()

func InitPreference added in v1.2.1

func InitPreference()

func InitReaction

func InitReaction()

func InitRouter

func InitRouter()

func InitStatus

func InitStatus()

func InitStores

func InitStores()

func InitTeam

func InitTeam()

func InitUser

func InitUser()

func InitWebSocket

func InitWebSocket()

func InitWebhook

func InitWebhook()

func InitWebrtc

func InitWebrtc()

func InvalidateAllCaches

func InvalidateAllCaches()

func InvalidateCacheForChannel

func InvalidateCacheForChannel(channel *model.Channel)

func InvalidateCacheForChannelByNameSkipClusterSend

func InvalidateCacheForChannelByNameSkipClusterSend(teamId, name string)

func InvalidateCacheForChannelMembers

func InvalidateCacheForChannelMembers(channelId string)

func InvalidateCacheForChannelMembersSkipClusterSend

func InvalidateCacheForChannelMembersSkipClusterSend(channelId string)

func InvalidateCacheForChannelPosts

func InvalidateCacheForChannelPosts(channelId string)

func InvalidateCacheForChannelPostsSkipClusterSend

func InvalidateCacheForChannelPostsSkipClusterSend(channelId string)

func InvalidateCacheForChannelSkipClusterSend

func InvalidateCacheForChannelSkipClusterSend(channelId string)

func InvalidateCacheForUser

func InvalidateCacheForUser(userId string)

func InvalidateCacheForUserSkipClusterSend

func InvalidateCacheForUserSkipClusterSend(userId string)

func InvalidateCacheForWebhook

func InvalidateCacheForWebhook(webhookId string)

func InvalidateCacheForWebhookSkipClusterSend

func InvalidateCacheForWebhookSkipClusterSend(webhookId string)

func InvalidateWebConnSessionCacheForUser

func InvalidateWebConnSessionCacheForUser(userId string)

func InviteMembers

func InviteMembers(team *model.Team, senderName string, invites []string, siteURL string)

func IsApiCall

func IsApiCall(r *http.Request) bool

func IsUserAway

func IsUserAway(lastActivityAt int64) bool

func IsUsernameTaken

func IsUsernameTaken(name string) bool

Check if the username is already used by another user. Return false if the username is invalid.

func IsVerifyHashRequired

func IsVerifyHashRequired(user *model.User, team *model.Team, hash string) bool

func JoinChannelById

func JoinChannelById(c *Context, userId string, channelId string) (*model.AppError, *model.Channel)

func JoinChannelByName

func JoinChannelByName(c *Context, userId string, teamId string, channelName string) (*model.AppError, *model.Channel)

func JoinDefaultChannels

func JoinDefaultChannels(teamId string, user *model.User, channelRole string) *model.AppError

func JoinUserToTeam

func JoinUserToTeam(team *model.Team, user *model.User) *model.AppError

func JoinUserToTeamById

func JoinUserToTeamById(teamId string, user *model.User) *model.AppError

func LeaveTeam

func LeaveTeam(team *model.Team, user *model.User) *model.AppError

func LinkUserToTeam

func LinkUserToTeam(user *model.User, team *model.Team)

func LoadLicense

func LoadLicense()

func LoginByOAuth added in v1.4.0

func LoginByOAuth(c *Context, w http.ResponseWriter, r *http.Request, service string, userData io.Reader) *model.User

func Logout

func Logout(c *Context, w http.ResponseWriter, r *http.Request)

func MakeUserChannelAdmin

func MakeUserChannelAdmin(user *model.User, channel *model.Channel)

func MakeUserChannelUser

func MakeUserChannelUser(user *model.User, channel *model.Channel)

func MoveFile

func MoveFile(oldPath, newPath string) *model.AppError

func NewInvalidParamError

func NewInvalidParamError(where string, name string) *model.AppError

func NewInvalidWebSocketParamError

func NewInvalidWebSocketParamError(action string, name string) *model.AppError

func NewServer

func NewServer()

func PermanentDeleteAllUsers

func PermanentDeleteAllUsers() *model.AppError

func PermanentDeleteTeam added in v1.3.0

func PermanentDeleteTeam(team *model.Team) *model.AppError

func PermanentDeleteUser added in v1.3.0

func PermanentDeleteUser(user *model.User) *model.AppError

func PostUpdateChannelDisplayNameMessage

func PostUpdateChannelDisplayNameMessage(c *Context, channelId string, oldChannelDisplayName, newChannelDisplayName string)

func PostUpdateChannelHeaderMessage

func PostUpdateChannelHeaderMessage(c *Context, channelId string, oldChannelHeader, newChannelHeader string)

func PostUserAddRemoveMessage

func PostUserAddRemoveMessage(c *Context, channelId string, message, postType string)

func Publish

func Publish(message *model.WebSocketEvent)

func PublishSkipClusterSend

func PublishSkipClusterSend(message *model.WebSocketEvent)

func ReadFile

func ReadFile(path string) ([]byte, *model.AppError)

func RegisterCommandProvider

func RegisterCommandProvider(newProvider CommandProvider)

func RemoveAllSessionsForUserId

func RemoveAllSessionsForUserId(userId string)

func RemoveAllSessionsForUserIdSkipClusterSend

func RemoveAllSessionsForUserIdSkipClusterSend(userId string)

func RemoveLicense

func RemoveLicense() *model.AppError

func RemoveUserFromChannel added in v1.1.0

func RemoveUserFromChannel(userIdToRemove string, removerUserId string, channel *model.Channel) *model.AppError

func RenderWebError

func RenderWebError(err *model.AppError, w http.ResponseWriter, r *http.Request)

func ResetPassword

func ResetPassword(c *Context, userId, newPassword string) *model.AppError

func ReturnStatusOK

func ReturnStatusOK(w http.ResponseWriter)

func RevokeAccessToken

func RevokeAccessToken(token string) *model.AppError

func RevokeAllSession

func RevokeAllSession(c *Context, userId string)

IF YOU UPDATE THIS PLEASE UPDATE BELOW

func RevokeAllSessionsNoContext

func RevokeAllSessionsNoContext(userId string) *model.AppError

UGH... If you update this please update above

func RevokeSessionById added in v1.4.0

func RevokeSessionById(c *Context, sessionId string)

func RevokeWebrtcToken

func RevokeWebrtcToken(sessionId string)

func SaveLicense

func SaveLicense(licenseBytes []byte) (*model.License, *model.AppError)

func SendEmailChangeVerifyEmail

func SendEmailChangeVerifyEmail(c *Context, userId, newUserEmail, siteURL string)

func SendEphemeralPost

func SendEphemeralPost(teamId, userId string, post *model.Post)

func SendVerifyEmail

func SendVerifyEmail(c *Context, userId, userEmail, siteURL string)

func SetActiveChannel

func SetActiveChannel(userId string, channelId string) *model.AppError

func SetStatusAwayIfNeeded

func SetStatusAwayIfNeeded(userId string, manual bool)

func SetStatusOffline

func SetStatusOffline(userId string, manual bool)

func SetStatusOnline

func SetStatusOnline(userId string, sessionId string, manual bool)

func SlackAddBotUser

func SlackAddBotUser(teamId string, log *bytes.Buffer) *model.User

func SlackAddChannels

func SlackAddChannels(teamId string, slackchannels []SlackChannel, posts map[string][]SlackPost, users map[string]*model.User, uploads map[string]*zip.File, botUser *model.User, log *bytes.Buffer) map[string]*model.Channel

func SlackAddPosts

func SlackAddPosts(teamId string, channel *model.Channel, posts []SlackPost, users map[string]*model.User, uploads map[string]*zip.File, botUser *model.User)

func SlackAddUsers

func SlackAddUsers(teamId string, slackusers []SlackUser, log *bytes.Buffer) map[string]*model.User

func SlackConvertChannelMentions

func SlackConvertChannelMentions(channels []SlackChannel, posts map[string][]SlackPost) map[string][]SlackPost

func SlackConvertChannelName

func SlackConvertChannelName(channelName string) string

func SlackConvertPostsMarkup

func SlackConvertPostsMarkup(posts map[string][]SlackPost) map[string][]SlackPost

func SlackConvertTimeStamp

func SlackConvertTimeStamp(ts string) int64

func SlackConvertUserMentions

func SlackConvertUserMentions(users []SlackUser, posts map[string][]SlackPost) map[string][]SlackPost

func SlackImport

func SlackImport(fileData multipart.File, fileSize int64, teamID string) (*model.AppError, *bytes.Buffer)

func SlackSanitiseChannelProperties

func SlackSanitiseChannelProperties(channel model.Channel) model.Channel

func SlackUploadFile

func SlackUploadFile(sPost SlackPost, uploads map[string]*zip.File, teamId string, channelId string, userId string) (*model.FileInfo, bool)

func StartServer

func StartServer()

func StopServer

func StopServer()

func TearDown

func TearDown()

func TotalWebsocketConnections

func TotalWebsocketConnections() int

func UpdateActive added in v1.3.0

func UpdateActive(user *model.User, active bool) (*model.User, *model.AppError)

func UpdateUserRoles

func UpdateUserRoles(user *model.User, newRoles string) (*model.User, *model.AppError)

func UpdateUserToNonTeamAdmin

func UpdateUserToNonTeamAdmin(user *model.User, team *model.Team)

func UpdateUserToTeamAdmin

func UpdateUserToTeamAdmin(user *model.User, team *model.Team)

func UserRequired

func UserRequired(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler

func WaitForChannelMembership

func WaitForChannelMembership(channelId string, userId string)

func WriteFile

func WriteFile(f []byte, path string) *model.AppError

Types

type AutoChannelCreator

type AutoChannelCreator struct {
	Fuzzy              bool
	DisplayNameLen     utils.Range
	DisplayNameCharset string
	NameLen            utils.Range
	NameCharset        string
	ChannelType        string
	// contains filtered or unexported fields
}

func NewAutoChannelCreator

func NewAutoChannelCreator(client *model.Client, team *model.Team) *AutoChannelCreator

func (*AutoChannelCreator) CreateTestChannels

func (cfg *AutoChannelCreator) CreateTestChannels(num utils.Range) ([]*model.Channel, bool)

type AutoPostCreator

type AutoPostCreator struct {
	Fuzzy          bool
	TextLength     utils.Range
	HasImage       bool
	ImageFilenames []string
	Users          []string
	Mentions       utils.Range
	Tags           utils.Range
	// contains filtered or unexported fields
}

func NewAutoPostCreator

func NewAutoPostCreator(client *model.Client, channelid string) *AutoPostCreator

Automatic poster used for testing

func (*AutoPostCreator) CreateRandomPost

func (cfg *AutoPostCreator) CreateRandomPost() (*model.Post, bool)

func (*AutoPostCreator) CreateTestPosts

func (cfg *AutoPostCreator) CreateTestPosts(rangePosts utils.Range) ([]*model.Post, bool)

func (*AutoPostCreator) UploadTestFile

func (cfg *AutoPostCreator) UploadTestFile() ([]string, bool)

type AutoTeamCreator

type AutoTeamCreator struct {
	Fuzzy         bool
	NameLength    utils.Range
	NameCharset   string
	DomainLength  utils.Range
	DomainCharset string
	EmailLength   utils.Range
	EmailCharset  string
	// contains filtered or unexported fields
}

func NewAutoTeamCreator

func NewAutoTeamCreator(client *model.Client) *AutoTeamCreator

func (*AutoTeamCreator) CreateTestTeams

func (cfg *AutoTeamCreator) CreateTestTeams(num utils.Range) ([]*model.Team, bool)

type AutoUserCreator

type AutoUserCreator struct {
	EmailLength  utils.Range
	EmailCharset string
	NameLength   utils.Range
	NameCharset  string
	Fuzzy        bool
	// contains filtered or unexported fields
}

func NewAutoUserCreator

func NewAutoUserCreator(client *model.Client, team *model.Team) *AutoUserCreator

func (*AutoUserCreator) CreateTestUsers

func (cfg *AutoUserCreator) CreateTestUsers(num utils.Range) ([]*model.User, bool)

type AwayProvider

type AwayProvider struct {
}

func (*AwayProvider) DoCommand

func (me *AwayProvider) DoCommand(c *Context, args *model.CommandArgs, message string) *model.CommandResponse

func (*AwayProvider) GetCommand

func (me *AwayProvider) GetCommand(c *Context) *model.Command

func (*AwayProvider) GetTrigger

func (me *AwayProvider) GetTrigger() string

type CollapseProvider

type CollapseProvider struct {
}

func (*CollapseProvider) DoCommand

func (me *CollapseProvider) DoCommand(c *Context, args *model.CommandArgs, message string) *model.CommandResponse

func (*CollapseProvider) GetCommand

func (me *CollapseProvider) GetCommand(c *Context) *model.Command

func (*CollapseProvider) GetTrigger

func (me *CollapseProvider) GetTrigger() string

type CommandProvider

type CommandProvider interface {
	GetTrigger() string
	GetCommand(c *Context) *model.Command
	DoCommand(c *Context, args *model.CommandArgs, message string) *model.CommandResponse
}

func GetCommandProvider

func GetCommandProvider(name string) CommandProvider

type Context

type Context struct {
	Session   model.Session
	RequestId string
	IpAddress string
	Path      string
	Err       *model.AppError

	T      goi18n.TranslateFunc
	Locale string
	TeamId string
	// contains filtered or unexported fields
}

func (*Context) CheckTeamId

func (c *Context) CheckTeamId()

func (*Context) GetCurrentTeamMember

func (c *Context) GetCurrentTeamMember() *model.TeamMember

func (*Context) GetSiteURL

func (c *Context) GetSiteURL() string

func (*Context) GetTeamURL

func (c *Context) GetTeamURL() string

func (*Context) GetTeamURLFromTeam

func (c *Context) GetTeamURLFromTeam(team *model.Team) string

func (*Context) LogAudit

func (c *Context) LogAudit(extraInfo string)

func (*Context) LogAuditWithUserId

func (c *Context) LogAuditWithUserId(userId, extraInfo string)

func (*Context) LogDebug

func (c *Context) LogDebug(err *model.AppError)

func (*Context) LogError

func (c *Context) LogError(err *model.AppError)

func (*Context) MfaRequired

func (c *Context) MfaRequired()

func (*Context) RemoveSessionCookie

func (c *Context) RemoveSessionCookie(w http.ResponseWriter, r *http.Request)

func (*Context) SetInvalidParam

func (c *Context) SetInvalidParam(where string, name string)

func (*Context) SetSiteURL

func (c *Context) SetSiteURL(url string)

func (*Context) SetTeamURLFromSession added in v1.1.0

func (c *Context) SetTeamURLFromSession()

func (*Context) SetUnknownError

func (c *Context) SetUnknownError(where string, details string)

func (*Context) SystemAdminRequired

func (c *Context) SystemAdminRequired()

func (*Context) UserRequired

func (c *Context) UserRequired()

type CorsWrapper

type CorsWrapper struct {
	// contains filtered or unexported fields
}

func (*CorsWrapper) ServeHTTP

func (cw *CorsWrapper) ServeHTTP(w http.ResponseWriter, r *http.Request)

type EchoProvider

type EchoProvider struct {
}

func (*EchoProvider) DoCommand

func (me *EchoProvider) DoCommand(c *Context, args *model.CommandArgs, message string) *model.CommandResponse

func (*EchoProvider) GetCommand

func (me *EchoProvider) GetCommand(c *Context) *model.Command

func (*EchoProvider) GetTrigger

func (me *EchoProvider) GetTrigger() string

type EmailBatchingJob

type EmailBatchingJob struct {
	// contains filtered or unexported fields
}

func MakeEmailBatchingJob

func MakeEmailBatchingJob(bufferSize int) *EmailBatchingJob

func (*EmailBatchingJob) Add

func (job *EmailBatchingJob) Add(user *model.User, post *model.Post, team *model.Team) bool

func (*EmailBatchingJob) CheckPendingEmails

func (job *EmailBatchingJob) CheckPendingEmails()

func (*EmailBatchingJob) Start

func (job *EmailBatchingJob) Start()

type ExpandProvider

type ExpandProvider struct {
}

func (*ExpandProvider) DoCommand

func (me *ExpandProvider) DoCommand(c *Context, args *model.CommandArgs, message string) *model.CommandResponse

func (*ExpandProvider) GetCommand

func (me *ExpandProvider) GetCommand(c *Context) *model.Command

func (*ExpandProvider) GetTrigger

func (me *ExpandProvider) GetTrigger() string

type Hub

type Hub struct {
	ExplicitStop bool
	// contains filtered or unexported fields
}

func GetHubForUserId

func GetHubForUserId(userId string) *Hub

func NewWebHub

func NewWebHub() *Hub

func (*Hub) Broadcast

func (h *Hub) Broadcast(message *model.WebSocketEvent)

func (*Hub) InvalidateUser

func (h *Hub) InvalidateUser(userId string)

func (*Hub) Register

func (h *Hub) Register(webConn *WebConn)

func (*Hub) Start

func (h *Hub) Start()

func (*Hub) Stop

func (h *Hub) Stop()

func (*Hub) Unregister

func (h *Hub) Unregister(webConn *WebConn)

type InvitePeopleProvider

type InvitePeopleProvider struct {
}

func (*InvitePeopleProvider) DoCommand

func (me *InvitePeopleProvider) DoCommand(c *Context, args *model.CommandArgs, message string) *model.CommandResponse

func (*InvitePeopleProvider) GetCommand

func (me *InvitePeopleProvider) GetCommand(c *Context) *model.Command

func (*InvitePeopleProvider) GetTrigger

func (me *InvitePeopleProvider) GetTrigger() string

type JoinProvider

type JoinProvider struct {
}

func (*JoinProvider) DoCommand

func (me *JoinProvider) DoCommand(c *Context, args *model.CommandArgs, message string) *model.CommandResponse

func (*JoinProvider) GetCommand

func (me *JoinProvider) GetCommand(c *Context) *model.Command

func (*JoinProvider) GetTrigger

func (me *JoinProvider) GetTrigger() string

type LoadTestProvider

type LoadTestProvider struct {
}

func (*LoadTestProvider) ChannelsCommand

func (me *LoadTestProvider) ChannelsCommand(c *Context, channelId string, message string) *model.CommandResponse

func (*LoadTestProvider) DoCommand

func (me *LoadTestProvider) DoCommand(c *Context, args *model.CommandArgs, message string) *model.CommandResponse

func (*LoadTestProvider) GetCommand

func (me *LoadTestProvider) GetCommand(c *Context) *model.Command

func (*LoadTestProvider) GetTrigger

func (me *LoadTestProvider) GetTrigger() string

func (*LoadTestProvider) HelpCommand

func (me *LoadTestProvider) HelpCommand(c *Context, channelId string, message string) *model.CommandResponse

func (*LoadTestProvider) JsonCommand

func (me *LoadTestProvider) JsonCommand(c *Context, channelId string, message string) *model.CommandResponse

func (*LoadTestProvider) PostsCommand

func (me *LoadTestProvider) PostsCommand(c *Context, channelId string, message string) *model.CommandResponse

func (*LoadTestProvider) SetupCommand

func (me *LoadTestProvider) SetupCommand(c *Context, channelId string, message string) *model.CommandResponse

func (*LoadTestProvider) UrlCommand

func (me *LoadTestProvider) UrlCommand(c *Context, channelId string, message string) *model.CommandResponse

func (*LoadTestProvider) UsersCommand

func (me *LoadTestProvider) UsersCommand(c *Context, channelId string, message string) *model.CommandResponse

type LogoutProvider

type LogoutProvider struct {
}

func (*LogoutProvider) DoCommand

func (me *LogoutProvider) DoCommand(c *Context, args *model.CommandArgs, message string) *model.CommandResponse

func (*LogoutProvider) GetCommand

func (me *LogoutProvider) GetCommand(c *Context) *model.Command

func (*LogoutProvider) GetTrigger

func (me *LogoutProvider) GetTrigger() string

type MeProvider

type MeProvider struct {
}

func (*MeProvider) DoCommand

func (me *MeProvider) DoCommand(c *Context, args *model.CommandArgs, message string) *model.CommandResponse

func (*MeProvider) GetCommand

func (me *MeProvider) GetCommand(c *Context) *model.Command

func (*MeProvider) GetTrigger

func (me *MeProvider) GetTrigger() string

type OfflineProvider

type OfflineProvider struct {
}

func (*OfflineProvider) DoCommand

func (me *OfflineProvider) DoCommand(c *Context, args *model.CommandArgs, message string) *model.CommandResponse

func (*OfflineProvider) GetCommand

func (me *OfflineProvider) GetCommand(c *Context) *model.Command

func (*OfflineProvider) GetTrigger

func (me *OfflineProvider) GetTrigger() string

type OnlineProvider

type OnlineProvider struct {
}

func (*OnlineProvider) DoCommand

func (me *OnlineProvider) DoCommand(c *Context, args *model.CommandArgs, message string) *model.CommandResponse

func (*OnlineProvider) GetCommand

func (me *OnlineProvider) GetCommand(c *Context) *model.Command

func (*OnlineProvider) GetTrigger

func (me *OnlineProvider) GetTrigger() string

type Routes

type Routes struct {
	Root    *mux.Router // ”
	ApiRoot *mux.Router // 'api/v3'

	Users    *mux.Router // 'api/v3/users'
	NeedUser *mux.Router // 'api/v3/users/{user_id:[A-Za-z0-9]+}'

	Teams    *mux.Router // 'api/v3/teams'
	NeedTeam *mux.Router // 'api/v3/teams/{team_id:[A-Za-z0-9]+}'

	Channels        *mux.Router // 'api/v3/teams/{team_id:[A-Za-z0-9]+}/channels'
	NeedChannel     *mux.Router // 'api/v3/teams/{team_id:[A-Za-z0-9]+}/channels/{channel_id:[A-Za-z0-9]+}'
	NeedChannelName *mux.Router // 'api/v3/teams/{team_id:[A-Za-z0-9]+}/channels/name/{channel_name:[A-Za-z0-9_-]+}'

	Posts    *mux.Router // 'api/v3/teams/{team_id:[A-Za-z0-9]+}/channels/{channel_id:[A-Za-z0-9]+}/posts'
	NeedPost *mux.Router // 'api/v3/teams/{team_id:[A-Za-z0-9]+}/channels/{channel_id:[A-Za-z0-9]+}/posts/{post_id:[A-Za-z0-9]+}'

	Commands *mux.Router // 'api/v3/teams/{team_id:[A-Za-z0-9]+}/commands'
	Hooks    *mux.Router // 'api/v3/teams/{team_id:[A-Za-z0-9]+}/hooks'

	TeamFiles *mux.Router // 'api/v3/teams/{team_id:[A-Za-z0-9]+}/files'
	Files     *mux.Router // 'api/v3/files'
	NeedFile  *mux.Router // 'api/v3/files/{file_id:[A-Za-z0-9]+}'

	OAuth *mux.Router // 'api/v3/oauth'

	Admin *mux.Router // 'api/v3/admin'

	General *mux.Router // 'api/v3/general'

	Preferences *mux.Router // 'api/v3/preferences'

	License *mux.Router // 'api/v3/license'

	Public *mux.Router // 'api/v3/public'

	Emoji *mux.Router // 'api/v3/emoji'

	Webrtc *mux.Router // 'api/v3/webrtc'

	WebSocket *WebSocketRouter // websocket api
}
var BaseRoutes *Routes

type Server

type Server struct {
	Store          store.Store
	Router         *mux.Router
	GracefulServer *graceful.Server
}
var Srv *Server

type ShortcutsProvider

type ShortcutsProvider struct {
}

func (*ShortcutsProvider) DoCommand

func (me *ShortcutsProvider) DoCommand(c *Context, args *model.CommandArgs, message string) *model.CommandResponse

func (*ShortcutsProvider) GetCommand

func (me *ShortcutsProvider) GetCommand(c *Context) *model.Command

func (*ShortcutsProvider) GetTrigger

func (me *ShortcutsProvider) GetTrigger() string

type ShrugProvider

type ShrugProvider struct {
}

func (*ShrugProvider) DoCommand

func (me *ShrugProvider) DoCommand(c *Context, args *model.CommandArgs, message string) *model.CommandResponse

func (*ShrugProvider) GetCommand

func (me *ShrugProvider) GetCommand(c *Context) *model.Command

func (*ShrugProvider) GetTrigger

func (me *ShrugProvider) GetTrigger() string

type SlackAttachment

type SlackAttachment struct {
	Id      int                      `json:"id"`
	Text    string                   `json:"text"`
	Pretext string                   `json:"pretext"`
	Fields  []map[string]interface{} `json:"fields"`
}

type SlackChannel

type SlackChannel struct {
	Id      string            `json:"id"`
	Name    string            `json:"name"`
	Members []string          `json:"members"`
	Topic   map[string]string `json:"topic"`
	Purpose map[string]string `json:"purpose"`
}

func SlackParseChannels

func SlackParseChannels(data io.Reader) ([]SlackChannel, error)

type SlackComment

type SlackComment struct {
	User    string `json:"user"`
	Comment string `json:"comment"`
}

type SlackFile

type SlackFile struct {
	Id    string `json:"id"`
	Title string `json:"title"`
}

type SlackPost

type SlackPost struct {
	User        string            `json:"user"`
	BotId       string            `json:"bot_id"`
	BotUsername string            `json:"username"`
	Text        string            `json:"text"`
	TimeStamp   string            `json:"ts"`
	Type        string            `json:"type"`
	SubType     string            `json:"subtype"`
	Comment     *SlackComment     `json:"comment"`
	Upload      bool              `json:"upload"`
	File        *SlackFile        `json:"file"`
	Attachments []SlackAttachment `json:"attachments"`
}

func SlackParsePosts

func SlackParsePosts(data io.Reader) ([]SlackPost, error)

type SlackUser

type SlackUser struct {
	Id       string            `json:"id"`
	Username string            `json:"name"`
	Profile  map[string]string `json:"profile"`
}

func SlackParseUsers

func SlackParseUsers(data io.Reader) ([]SlackUser, error)

type TeamEnvironment added in v1.2.1

type TeamEnvironment struct {
	Users    []*model.User
	Channels []*model.Channel
}

func CreateTestEnvironmentInTeam added in v1.2.1

func CreateTestEnvironmentInTeam(client *model.Client, team *model.Team, rangeChannels utils.Range, rangeUsers utils.Range, rangePosts utils.Range, fuzzy bool) (TeamEnvironment, bool)

type TestEnvironment added in v1.2.1

type TestEnvironment struct {
	Teams        []*model.Team
	Environments []TeamEnvironment
}

func CreateTestEnvironmentWithTeams added in v1.2.1

func CreateTestEnvironmentWithTeams(client *model.Client, rangeTeams utils.Range, rangeChannels utils.Range, rangeUsers utils.Range, rangePosts utils.Range, fuzzy bool) (TestEnvironment, bool)

type TestHelper

type TestHelper struct {
	BasicClient  *model.Client
	BasicTeam    *model.Team
	BasicUser    *model.User
	BasicUser2   *model.User
	BasicChannel *model.Channel
	BasicPost    *model.Post

	SystemAdminClient  *model.Client
	SystemAdminTeam    *model.Team
	SystemAdminUser    *model.User
	SystemAdminChannel *model.Channel
}

func Setup

func Setup() *TestHelper

func SetupEnterprise

func SetupEnterprise() *TestHelper

func (*TestHelper) CreateChannel

func (me *TestHelper) CreateChannel(client *model.Client, team *model.Team) *model.Channel

func (*TestHelper) CreateClient

func (me *TestHelper) CreateClient() *model.Client

func (*TestHelper) CreatePost

func (me *TestHelper) CreatePost(client *model.Client, channel *model.Channel) *model.Post

func (*TestHelper) CreatePrivateChannel

func (me *TestHelper) CreatePrivateChannel(client *model.Client, team *model.Team) *model.Channel

func (*TestHelper) CreateTeam

func (me *TestHelper) CreateTeam(client *model.Client) *model.Team

func (*TestHelper) CreateUser

func (me *TestHelper) CreateUser(client *model.Client) *model.User

func (*TestHelper) CreateWebSocketClient

func (me *TestHelper) CreateWebSocketClient() (*model.WebSocketClient, *model.AppError)

func (*TestHelper) InitBasic

func (me *TestHelper) InitBasic() *TestHelper

func (*TestHelper) InitSystemAdmin

func (me *TestHelper) InitSystemAdmin() *TestHelper

func (*TestHelper) LoginBasic

func (me *TestHelper) LoginBasic()

func (*TestHelper) LoginBasic2

func (me *TestHelper) LoginBasic2()

func (*TestHelper) LoginSystemAdmin

func (me *TestHelper) LoginSystemAdmin()

type VaryBy

type VaryBy struct{}

func (*VaryBy) Key

func (m *VaryBy) Key(r *http.Request) string

type WebConn

type WebConn struct {
	WebSocket                 *websocket.Conn
	Send                      chan model.WebSocketMessage
	SessionToken              string
	SessionExpiresAt          int64
	Session                   *model.Session
	UserId                    string
	T                         goi18n.TranslateFunc
	Locale                    string
	AllChannelMembers         map[string]string
	LastAllChannelMembersTime int64
}

func NewWebConn

func NewWebConn(c *Context, ws *websocket.Conn) *WebConn

func (*WebConn) InvalidateCache

func (webCon *WebConn) InvalidateCache()

func (*WebConn) IsMemberOfTeam

func (webCon *WebConn) IsMemberOfTeam(teamId string) bool

func (*WebConn) SendHello

func (webCon *WebConn) SendHello()

func (*WebConn) ShouldSendEvent

func (webCon *WebConn) ShouldSendEvent(msg *model.WebSocketEvent) bool

type WebSocketRouter

type WebSocketRouter struct {
	// contains filtered or unexported fields
}

func NewWebSocketRouter

func NewWebSocketRouter() *WebSocketRouter

func (*WebSocketRouter) Handle

func (wr *WebSocketRouter) Handle(action string, handler *webSocketHandler)

func (*WebSocketRouter) ReturnWebSocketError

func (wr *WebSocketRouter) ReturnWebSocketError(conn *WebConn, r *model.WebSocketRequest, err *model.AppError)

func (*WebSocketRouter) ServeWebSocket

func (wr *WebSocketRouter) ServeWebSocket(conn *WebConn, r *model.WebSocketRequest)

Jump to

Keyboard shortcuts

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