api

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Dec 14, 2015 License: AGPL-3.0, Apache-2.0 Imports: 45 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 (
	EXPORT_PATH                   = "export/"
	EXPORT_FILENAME               = "MattermostExport.zip"
	EXPORT_OPTIONS_FILE           = "options.json"
	EXPORT_TEAMS_FOLDER           = "teams"
	EXPORT_CHANNELS_FOLDER        = "channels"
	EXPORT_CHANNEL_MEMBERS_FOLDER = "members"
	EXPORT_POSTS_FOLDER           = "posts"
	EXPORT_USERS_FOLDER           = "users"
	EXPORT_LOCAL_STORAGE_FOLDER   = "files"
)
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 = 4096 * 2160 // 4k resolution
)
View Source
const (
	WRITE_WAIT  = 10 * time.Second
	PONG_WAIT   = 60 * time.Second
	PING_PERIOD = (PONG_WAIT * 9) / 10
	MAX_SIZE    = 512
	REDIS_WAIT  = 60 * 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"}
)
View Source
var ServerTemplates *template.Template

Functions

func AddSessionToCache

func AddSessionToCache(session *model.Session)

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 ApiAppHandler

func ApiAppHandler(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 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 AuthorizeOAuthUser

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

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 CreateDefaultChannels

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

func CreateDirectChannel

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

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(c *Context, team *model.Team, user *model.User) *model.User

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 ExportChannels

func ExportChannels(writer ExportWriter, options *ExportOptions, teamId string) *model.AppError

func ExportLocalStorage

func ExportLocalStorage(writer ExportWriter, options *ExportOptions, teamId string) *model.AppError

func ExportPosts

func ExportPosts(writer ExportWriter, options *ExportOptions, channelId string) *model.AppError

func ExportTeams

func ExportTeams(writer ExportWriter, options *ExportOptions) *model.AppError

func ExportToFile

func ExportToFile(options *ExportOptions) (link string, err *model.AppError)

func ExportToWriter

func ExportToWriter(w io.Writer, options *ExportOptions) *model.AppError

func ExportUsers

func ExportUsers(writer ExportWriter, options *ExportOptions, teamId string) *model.AppError

func FindMultiSessionForTeamId added in v1.2.1

func FindMultiSessionForTeamId(r *http.Request, teamId string) (int64, *model.Session)

func FindTeamByName

func FindTeamByName(c *Context, name string, all string) bool

func GetAuthData

func GetAuthData(code string) *model.AuthData

func GetAuthorizationCode

func GetAuthorizationCode(c *Context, w http.ResponseWriter, r *http.Request, teamName, service, redirectUri, loginHint string)

func GetIpAddress

func GetIpAddress(r *http.Request) string

func GetMultiSessionCookieTokens added in v1.2.1

func GetMultiSessionCookieTokens(r *http.Request) []string

func GetProtocol

func GetProtocol(r *http.Request) string

func GetSession added in v1.2.1

func GetSession(token string) *model.Session

func Handle404

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

func HandleEtag

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

func ImportChannel

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

func ImportPost

func ImportPost(post *model.Post)

func ImportUser

func ImportUser(user *model.User) *model.User

func InitAdmin

func InitAdmin(r *mux.Router)

func InitApi

func InitApi()

func InitChannel

func InitChannel(r *mux.Router)

func InitCommand

func InitCommand(r *mux.Router)

func InitFile

func InitFile(r *mux.Router)

func InitOAuth

func InitOAuth(r *mux.Router)

func InitPost

func InitPost(r *mux.Router)

func InitPreference added in v1.2.1

func InitPreference(r *mux.Router)

func InitTeam

func InitTeam(r *mux.Router)

func InitUser

func InitUser(r *mux.Router)

func InitWebSocket

func InitWebSocket(r *mux.Router)

func InitWebhook

func InitWebhook(r *mux.Router)

func InviteMembers

func InviteMembers(c *Context, team *model.Team, user *model.User, invites []string)

func IsBetaDomain

func IsBetaDomain(r *http.Request) bool

func IsPrivateIpAddress

func IsPrivateIpAddress(ipAddress string) bool

func IsTestDomain

func IsTestDomain(r *http.Request) bool

func IsUsernameTaken

func IsUsernameTaken(name string, teamId string) bool

func IsVerifyHashRequired

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

func JoinChannel

func JoinChannel(c *Context, channelId string, role string)

func JoinDefaultChannels

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

func Login

func Login(c *Context, w http.ResponseWriter, r *http.Request, user *model.User, deviceId string)

User MUST be validated before calling Login

func LoginByEmail

func LoginByEmail(c *Context, w http.ResponseWriter, r *http.Request, email, name, password, deviceId string) *model.User

func LoginById

func LoginById(c *Context, w http.ResponseWriter, r *http.Request, userId, password, deviceId string) *model.User

func Logout

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

func NewServer

func NewServer()

func PermanentDeleteTeam added in v1.3.0

func PermanentDeleteTeam(c *Context, team *model.Team) *model.AppError

func PermanentDeleteUser added in v1.3.0

func PermanentDeleteUser(c *Context, user *model.User) *model.AppError

func PostUpdateChannelHeaderMessageAndForget added in v1.3.0

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

func PostUserAddRemoveMessageAndForget added in v1.1.0

func PostUserAddRemoveMessageAndForget(c *Context, channelId string, message string)

func PublishAndForget

func PublishAndForget(message *model.Message)

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 RevokeAccessToken

func RevokeAccessToken(token string) *model.AppError

func RevokeAllSession

func RevokeAllSession(c *Context, userId string)

func SendEmailChangeVerifyEmailAndForget added in v1.2.1

func SendEmailChangeVerifyEmailAndForget(userId, newUserEmail, teamName, teamDisplayName, siteURL, teamURL string)

func SendVerifyEmailAndForget added in v1.2.1

func SendVerifyEmailAndForget(userId, userEmail, teamName, teamDisplayName, siteURL, teamURL string)

func ShouldSendEvent added in v1.2.1

func ShouldSendEvent(webCon *WebConn, msg *model.Message) bool

func SlackAddChannels

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

func SlackAddPosts

func SlackAddPosts(channel *model.Channel, posts []SlackPost, users map[string]*model.User)

func SlackAddUsers

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

func SlackConvertChannelName

func SlackConvertChannelName(channelName string) string

func SlackConvertTimeStamp

func SlackConvertTimeStamp(ts string) int64

func SlackImport

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

func StartServer

func StartServer()

func StopServer

func StopServer()

func UpdateActive added in v1.3.0

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

func UpdateChannelAccessCache added in v1.1.0

func UpdateChannelAccessCache(teamId, userId, channelId string)

func UpdateChannelAccessCacheAndForget

func UpdateChannelAccessCacheAndForget(teamId, userId, channelId string)

func UpdateRoles

func UpdateRoles(c *Context, user *model.User, roles string) *model.User

func UserRequired

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

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, teamID string) *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, teamID string) *AutoUserCreator

func (*AutoUserCreator) CreateTestUsers

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

type Context

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

	SessionTokenIndex int64
	// contains filtered or unexported fields
}

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) HasPermissionsToChannel

func (c *Context) HasPermissionsToChannel(sc store.StoreChannel, where string) bool

func (*Context) HasPermissionsToTeam

func (c *Context) HasPermissionsToTeam(teamId string, where string) bool

func (*Context) HasPermissionsToUser

func (c *Context) HasPermissionsToUser(userId string, where string) bool

func (*Context) HasSystemAdminPermissions

func (c *Context) HasSystemAdminPermissions(where string) bool

func (*Context) IsSystemAdmin

func (c *Context) IsSystemAdmin() bool

func (*Context) IsTeamAdmin

func (c *Context) IsTeamAdmin() bool

func (*Context) LogAudit

func (c *Context) LogAudit(extraInfo string)

func (*Context) LogAuditWithUserId

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

func (*Context) LogError

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

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) 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 ExportOptions

type ExportOptions struct {
	TeamsToExport      []string `json:"teams"`
	ChannelsToExport   []string `json:"channels"`
	UsersToExport      []string `json:"users"`
	ExportLocalStorage bool     `json:"export_local_storage"`
}

func ExportOptionsFromJson

func ExportOptionsFromJson(data io.Reader) *ExportOptions

func (*ExportOptions) ToJson

func (options *ExportOptions) ToJson() string

type ExportWriter

type ExportWriter interface {
	Create(name string) (io.Writer, error)
}

type Hub

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

func (*Hub) Broadcast

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

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 ImageGetResult

type ImageGetResult struct {
	Error     error
	ImageData []byte
}

type Page

type Page struct {
	TemplateName      string
	Props             map[string]string
	ClientCfg         map[string]string
	User              *model.User
	Team              *model.Team
	Channel           *model.Channel
	PostID            string
	SessionTokenIndex int64
}

type Server

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

type ServerTemplatePage

type ServerTemplatePage Page

func NewServerTemplatePage

func NewServerTemplatePage(templateName string) *ServerTemplatePage

func (*ServerTemplatePage) Render

func (me *ServerTemplatePage) Render() string

type SlackChannel

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

func SlackParseChannels

func SlackParseChannels(data io.Reader) []SlackChannel

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     map[string]string `json:"comment"`
}

func SlackParsePosts

func SlackParsePosts(data io.Reader) []SlackPost

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

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, teamID string, rangeChannels utils.Range, rangeUsers utils.Range, rangePosts utils.Range, fuzzy bool) (TeamEnvironment, bool)

type TeamHub

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

func NewTeamHub

func NewTeamHub(teamId string) *TeamHub

func (*TeamHub) Register

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

func (*TeamHub) Start

func (h *TeamHub) Start()

func (*TeamHub) Stop

func (h *TeamHub) Stop()

func (*TeamHub) Unregister

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

func (*TeamHub) UpdateChannelAccessCache

func (h *TeamHub) UpdateChannelAccessCache(userId string, channelId string)

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 WebConn

type WebConn struct {
	WebSocket          *websocket.Conn
	Send               chan *model.Message
	TeamId             string
	UserId             string
	ChannelAccessCache map[string]bool
}

func NewWebConn

func NewWebConn(ws *websocket.Conn, teamId string, userId string, sessionId string) *WebConn

Jump to

Keyboard shortcuts

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