Documentation ¶
Index ¶
- Constants
- Variables
- func Logout(c *Context, w http.ResponseWriter, r *http.Request)
- type API
- func (api *API) ApiHandler(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler
- func (api *API) ApiHandlerTrustRequester(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler
- func (api *API) ApiSessionRequired(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler
- func (api *API) ApiSessionRequiredDisableWhenBusy(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler
- func (api *API) ApiSessionRequiredMfa(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler
- func (api *API) ApiSessionRequiredTrustRequester(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler
- func (api *API) Handle404(w http.ResponseWriter, r *http.Request)
- func (api *API) InitAction()
- func (api *API) InitBrand()
- func (api *API) InitCluster()
- func (api *API) InitCommand()
- func (api *API) InitCompliance()
- func (api *API) InitConfig()
- func (api *API) InitDataRetention()
- func (api *API) InitElasticsearch()
- func (api *API) InitEmoji()
- func (api *API) InitFile()
- func (api *API) InitImage()
- func (api *API) InitJob()
- func (api *API) InitLdap()
- func (api *API) InitLicense()
- func (api *API) InitOAuth()
- func (api *API) InitOpenGraph()
- func (api *API) InitPreference()
- func (api *API) InitReaction()
- func (api *API) InitRole()
- func (api *API) InitSaml()
- func (api *API) InitScheme()
- func (api *API) InitStatus()
- func (api *API) InitSystem()
- func (api *API) InitTermsOfService()
- func (api *API) InitUser()
- func (api *API) InitWebSocket()
- func (api *API) InitWebhook()
- type Context
- type Routes
Constants ¶
const ( FILE_TEAM_ID = "noteam" PREVIEW_IMAGE_TYPE = "image/jpeg" THUMBNAIL_IMAGE_TYPE = "image/jpeg" )
const ( REDIRECT_LOCATION_CACHE_SIZE = 10000 DEFAULT_SERVER_BUSY_SECONDS = 3600 MAX_SERVER_BUSY_SECONDS = 86400 )
const (
EMOJI_MAX_AUTOCOMPLETE_ITEMS = 100
)
const OPEN_GRAPH_METADATA_CACHE_SIZE = 10000
Variables ¶
var MEDIA_CONTENT_TYPES = [...]string{
"image/jpeg",
"image/png",
"image/bmp",
"image/gif",
"image/tiff",
"video/avi",
"video/mpeg",
"video/mp4",
"audio/mpeg",
"audio/wav",
}
var ReturnStatusOK = web.ReturnStatusOK
var UNSAFE_CONTENT_TYPES = [...]string{
"application/javascript",
"application/ecmascript",
"text/javascript",
"text/ecmascript",
"application/x-javascript",
"text/html",
}
Functions ¶
Types ¶
type API ¶
type API struct { ConfigService configservice.ConfigService GetGlobalAppOptions app.AppOptionCreator BaseRoutes *Routes }
func Init ¶
func Init(configservice configservice.ConfigService, globalOptionsFunc app.AppOptionCreator, root *mux.Router) *API
func (*API) ApiHandler ¶
ApiHandler provides a handler for API endpoints which do not require the user to be logged in order for access to be granted.
func (*API) ApiHandlerTrustRequester ¶
func (api *API) ApiHandlerTrustRequester(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler
ApiHandlerTrustRequester provides a handler for API endpoints which do not require the user to be logged in and are allowed to be requested directly rather than via javascript/XMLHttpRequest, such as site branding images or the websocket.
func (*API) ApiSessionRequired ¶
func (api *API) ApiSessionRequired(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler
ApiSessionRequired provides a handler for API endpoints which require the user to be logged in in order for access to be granted.
func (*API) ApiSessionRequiredDisableWhenBusy ¶
func (api *API) ApiSessionRequiredDisableWhenBusy(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler
DisableWhenBusy provides a handler for API endpoints which should be disabled when the server is under load, responding with HTTP 503 (Service Unavailable).
func (*API) ApiSessionRequiredMfa ¶
func (api *API) ApiSessionRequiredMfa(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler
ApiSessionRequiredMfa provides a handler for API endpoints which require a logged-in user session but when accessed, if MFA is enabled, the MFA process is not yet complete, and therefore the requirement to have completed the MFA authentication must be waived.
func (*API) ApiSessionRequiredTrustRequester ¶
func (api *API) ApiSessionRequiredTrustRequester(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler
ApiSessionRequiredTrustRequester provides a handler for API endpoints which do require the user to be logged in and are allowed to be requested directly rather than via javascript/XMLHttpRequest, such as emoji or file uploads.
func (*API) InitAction ¶
func (api *API) InitAction()
func (*API) InitCluster ¶
func (api *API) InitCluster()
func (*API) InitCommand ¶
func (api *API) InitCommand()
func (*API) InitCompliance ¶
func (api *API) InitCompliance()
func (*API) InitConfig ¶
func (api *API) InitConfig()
func (*API) InitDataRetention ¶
func (api *API) InitDataRetention()
func (*API) InitElasticsearch ¶
func (api *API) InitElasticsearch()
func (*API) InitLicense ¶
func (api *API) InitLicense()
func (*API) InitOpenGraph ¶
func (api *API) InitOpenGraph()
func (*API) InitPreference ¶
func (api *API) InitPreference()
func (*API) InitReaction ¶
func (api *API) InitReaction()
func (*API) InitScheme ¶
func (api *API) InitScheme()
func (*API) InitStatus ¶
func (api *API) InitStatus()
func (*API) InitSystem ¶
func (api *API) InitSystem()
func (*API) InitTermsOfService ¶
func (api *API) InitTermsOfService()
func (*API) InitWebSocket ¶
func (api *API) InitWebSocket()
func (*API) InitWebhook ¶
func (api *API) InitWebhook()
type Routes ¶
type Routes struct { Root *mux.Router // ” ApiRoot *mux.Router // 'api/v4' Users *mux.Router // 'api/v4/users' User *mux.Router // 'api/v4/users/{user_id:[A-Za-z0-9]+}' UserByUsername *mux.Router // 'api/v4/users/username/{username:[A-Za-z0-9_-\.]+}' UserByEmail *mux.Router // 'api/v4/users/email/{email}' Bots *mux.Router // 'api/v4/bots' Bot *mux.Router // 'api/v4/bots/{bot_user_id:[A-Za-z0-9]+}' Teams *mux.Router // 'api/v4/teams' TeamsForUser *mux.Router // 'api/v4/users/{user_id:[A-Za-z0-9]+}/teams' Team *mux.Router // 'api/v4/teams/{team_id:[A-Za-z0-9]+}' TeamForUser *mux.Router // 'api/v4/users/{user_id:[A-Za-z0-9]+}/teams/{team_id:[A-Za-z0-9]+}' TeamByName *mux.Router // 'api/v4/teams/name/{team_name:[A-Za-z0-9_-]+}' TeamMembers *mux.Router // 'api/v4/teams/{team_id:[A-Za-z0-9_-]+}/members' TeamMember *mux.Router // 'api/v4/teams/{team_id:[A-Za-z0-9_-]+}/members/{user_id:[A-Za-z0-9_-]+}' TeamMembersForUser *mux.Router // 'api/v4/users/{user_id:[A-Za-z0-9]+}/teams/members' Channels *mux.Router // 'api/v4/channels' Channel *mux.Router // 'api/v4/channels/{channel_id:[A-Za-z0-9]+}' ChannelForUser *mux.Router // 'api/v4/users/{user_id:[A-Za-z0-9]+}/channels/{channel_id:[A-Za-z0-9]+}' ChannelByName *mux.Router // 'api/v4/teams/{team_id:[A-Za-z0-9]+}/channels/name/{channel_name:[A-Za-z0-9_-]+}' ChannelByNameForTeamName *mux.Router // 'api/v4/teams/name/{team_name:[A-Za-z0-9_-]+}/channels/name/{channel_name:[A-Za-z0-9_-]+}' ChannelsForTeam *mux.Router // 'api/v4/teams/{team_id:[A-Za-z0-9]+}/channels' ChannelMembers *mux.Router // 'api/v4/channels/{channel_id:[A-Za-z0-9]+}/members' ChannelMember *mux.Router // 'api/v4/channels/{channel_id:[A-Za-z0-9]+}/members/{user_id:[A-Za-z0-9]+}' ChannelMembersForUser *mux.Router // 'api/v4/users/{user_id:[A-Za-z0-9]+}/teams/{team_id:[A-Za-z0-9]+}/channels/members' ChannelModerations *mux.Router // 'api/v4/channels/{channel_id:[A-Za-z0-9]+}/moderations' Posts *mux.Router // 'api/v4/posts' Post *mux.Router // 'api/v4/posts/{post_id:[A-Za-z0-9]+}' PostsForChannel *mux.Router // 'api/v4/channels/{channel_id:[A-Za-z0-9]+}/posts' PostsForUser *mux.Router // 'api/v4/users/{user_id:[A-Za-z0-9]+}/posts' PostForUser *mux.Router // 'api/v4/users/{user_id:[A-Za-z0-9]+}/posts/{post_id:[A-Za-z0-9]+}' Files *mux.Router // 'api/v4/files' File *mux.Router // 'api/v4/files/{file_id:[A-Za-z0-9]+}' Plugins *mux.Router // 'api/v4/plugins' Plugin *mux.Router // 'api/v4/plugins/{plugin_id:[A-Za-z0-9_-]+}' PublicFile *mux.Router // 'files/{file_id:[A-Za-z0-9]+}/public' Commands *mux.Router // 'api/v4/commands' Command *mux.Router // 'api/v4/commands/{command_id:[A-Za-z0-9]+}' Hooks *mux.Router // 'api/v4/hooks' IncomingHooks *mux.Router // 'api/v4/hooks/incoming' IncomingHook *mux.Router // 'api/v4/hooks/incoming/{hook_id:[A-Za-z0-9]+}' OutgoingHooks *mux.Router // 'api/v4/hooks/outgoing' OutgoingHook *mux.Router // 'api/v4/hooks/outgoing/{hook_id:[A-Za-z0-9]+}' OAuth *mux.Router // 'api/v4/oauth' OAuthApps *mux.Router // 'api/v4/oauth/apps' OAuthApp *mux.Router // 'api/v4/oauth/apps/{app_id:[A-Za-z0-9]+}' OpenGraph *mux.Router // 'api/v4/opengraph' SAML *mux.Router // 'api/v4/saml' Compliance *mux.Router // 'api/v4/compliance' Cluster *mux.Router // 'api/v4/cluster' Image *mux.Router // 'api/v4/image' LDAP *mux.Router // 'api/v4/ldap' Elasticsearch *mux.Router // 'api/v4/elasticsearch' DataRetention *mux.Router // 'api/v4/data_retention' Brand *mux.Router // 'api/v4/brand' System *mux.Router // 'api/v4/system' Jobs *mux.Router // 'api/v4/jobs' Preferences *mux.Router // 'api/v4/users/{user_id:[A-Za-z0-9]+}/preferences' License *mux.Router // 'api/v4/license' Public *mux.Router // 'api/v4/public' Reactions *mux.Router // 'api/v4/reactions' Roles *mux.Router // 'api/v4/roles' Schemes *mux.Router // 'api/v4/schemes' Emojis *mux.Router // 'api/v4/emoji' Emoji *mux.Router // 'api/v4/emoji/{emoji_id:[A-Za-z0-9]+}' EmojiByName *mux.Router // 'api/v4/emoji/name/{emoji_name:[A-Za-z0-9_-\.]+}' ReactionByNameForPostForUser *mux.Router // 'api/v4/users/{user_id:[A-Za-z0-9]+}/posts/{post_id:[A-Za-z0-9]+}/reactions/{emoji_name:[A-Za-z0-9_-+]+}' TermsOfService *mux.Router // 'api/v4/terms_of_service Groups *mux.Router // 'api/v4/groups' }
Source Files ¶
- api.go
- brand.go
- cluster.go
- command.go
- compliance.go
- config.go
- data_retention.go
- elasticsearch.go
- emoji.go
- file.go
- handlers.go
- helpers.go
- image.go
- integration_action.go
- job.go
- ldap.go
- license.go
- oauth.go
- openGraph.go
- preference.go
- reaction.go
- role.go
- saml.go
- scheme.go
- status.go
- system.go
- terms_of_service.go
- user.go
- webhook.go
- websocket.go