api4

package
v5.3.0-rc2+incompatible Latest Latest
Warning

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

Go to latest
Published: Sep 6, 2018 License: AGPL-3.0, Apache-2.0 Imports: 35 Imported by: 14

Documentation

Index

Constants

View Source
const (
	FILE_TEAM_ID = "noteam"

	PREVIEW_IMAGE_TYPE   = "image/jpeg"
	THUMBNAIL_IMAGE_TYPE = "image/jpeg"
)
View Source
const (
	MAX_ADD_MEMBERS_BATCH    = 20
	MAXIMUM_BULK_IMPORT_SIZE = 10 * 1024 * 1024
)
View Source
const (
	EMOJI_MAX_AUTOCOMPLETE_ITEMS = 100
)
View Source
const (
	MAXIMUM_PLUGIN_FILE_SIZE = 50 * 1024 * 1024
)
View Source
const OPEN_GRAPH_METADATA_CACHE_SIZE = 10000

Variables

View Source
var MEDIA_CONTENT_TYPES = [...]string{
	"image/jpeg",
	"image/png",
	"image/bmp",
	"image/gif",
	"video/avi",
	"video/mpeg",
	"video/mp4",
	"audio/mpeg",
	"audio/wav",
}
View Source
var ReturnStatusOK = web.ReturnStatusOK
View Source
var UNSAFE_CONTENT_TYPES = [...]string{
	"application/javascript",
	"application/ecmascript",
	"text/javascript",
	"text/ecmascript",
	"application/x-javascript",
	"text/html",
}

Functions

func CheckBadRequestStatus

func CheckBadRequestStatus(t *testing.T, resp *model.Response)

func CheckCreatedStatus

func CheckCreatedStatus(t *testing.T, resp *model.Response)

func CheckErrorMessage

func CheckErrorMessage(t *testing.T, resp *model.Response, errorId string)

func CheckEtag

func CheckEtag(t *testing.T, data interface{}, resp *model.Response)

func CheckForbiddenStatus

func CheckForbiddenStatus(t *testing.T, resp *model.Response)

func CheckInternalErrorStatus

func CheckInternalErrorStatus(t *testing.T, resp *model.Response)

func CheckNoError

func CheckNoError(t *testing.T, resp *model.Response)

func CheckNotFoundStatus

func CheckNotFoundStatus(t *testing.T, resp *model.Response)

func CheckNotImplementedStatus

func CheckNotImplementedStatus(t *testing.T, resp *model.Response)

func CheckOKStatus

func CheckOKStatus(t *testing.T, resp *model.Response)

func CheckUnauthorizedStatus

func CheckUnauthorizedStatus(t *testing.T, resp *model.Response)

func CheckUserSanitization

func CheckUserSanitization(t *testing.T, user *model.User)

func GenerateTestAppName

func GenerateTestAppName() string

func GenerateTestChannelName

func GenerateTestChannelName() string

func GenerateTestId

func GenerateTestId() string

func GenerateTestTeamName

func GenerateTestTeamName() string

func GenerateTestUsername

func GenerateTestUsername() string

func Logout

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

func OpenGraphDataWithProxyAddedToImageURLs

func OpenGraphDataWithProxyAddedToImageURLs(ogdata *opengraph.OpenGraph, toProxyURL func(string) string) *opengraph.OpenGraph

func StopTestStore

func StopTestStore()

func UseTestStore

func UseTestStore(container *storetest.RunningContainer, settings *model.SqlSettings)

UseTestStore sets the container and corresponding settings to use for tests. Once the tests are complete (e.g. at the end of your TestMain implementation), you should call StopTestStore.

Types

type API

type API struct {
	App        *app.App
	BaseRoutes *Routes
}

func Init

func Init(a *app.App, root *mux.Router) *API

func (*API) ApiHandler

func (api *API) ApiHandler(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler

func (*API) ApiHandlerTrustRequester

func (api *API) ApiHandlerTrustRequester(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler

func (*API) ApiSessionRequired

func (api *API) ApiSessionRequired(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler

func (*API) ApiSessionRequiredMfa

func (api *API) ApiSessionRequiredMfa(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler

func (*API) ApiSessionRequiredTrustRequester

func (api *API) ApiSessionRequiredTrustRequester(h func(*Context, http.ResponseWriter, *http.Request)) http.Handler

func (*API) Handle404

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

func (*API) InitBrand

func (api *API) InitBrand()

func (*API) InitChannel

func (api *API) InitChannel()

func (*API) InitCluster

func (api *API) InitCluster()

func (*API) InitCommand

func (api *API) InitCommand()

func (*API) InitCompliance

func (api *API) InitCompliance()

func (*API) InitDataRetention

func (api *API) InitDataRetention()

func (*API) InitElasticsearch

func (api *API) InitElasticsearch()

func (*API) InitEmoji

func (api *API) InitEmoji()

func (*API) InitFile

func (api *API) InitFile()

func (*API) InitImage

func (api *API) InitImage()

func (*API) InitJob

func (api *API) InitJob()

func (*API) InitLdap

func (api *API) InitLdap()

func (*API) InitOAuth

func (api *API) InitOAuth()

func (*API) InitOpenGraph

func (api *API) InitOpenGraph()

func (*API) InitPlugin

func (api *API) InitPlugin()

func (*API) InitPost

func (api *API) InitPost()

func (*API) InitPreference

func (api *API) InitPreference()

func (*API) InitReaction

func (api *API) InitReaction()

func (*API) InitRole

func (api *API) InitRole()

func (*API) InitSaml

func (api *API) InitSaml()

func (*API) InitScheme

func (api *API) InitScheme()

func (*API) InitStatus

func (api *API) InitStatus()

func (*API) InitSystem

func (api *API) InitSystem()

func (*API) InitTeam

func (api *API) InitTeam()

func (*API) InitUser

func (api *API) InitUser()

func (*API) InitWebSocket

func (api *API) InitWebSocket()

func (*API) InitWebhook

func (api *API) InitWebhook()

func (*API) InitWebrtc

func (api *API) InitWebrtc()

type Context

type Context = web.Context

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}'

	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'

	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_-+]+}'

	Webrtc *mux.Router // 'api/v4/webrtc'
}

type TestHelper

type TestHelper struct {
	App *app.App

	Client              *model.Client4
	BasicUser           *model.User
	BasicUser2          *model.User
	TeamAdminUser       *model.User
	BasicTeam           *model.Team
	BasicChannel        *model.Channel
	BasicPrivateChannel *model.Channel
	BasicDeletedChannel *model.Channel
	BasicChannel2       *model.Channel
	BasicPost           *model.Post

	SystemAdminClient *model.Client4
	SystemAdminUser   *model.User
	// contains filtered or unexported fields
}

func Setup

func Setup() *TestHelper

func SetupConfig

func SetupConfig(updateConfig func(cfg *model.Config)) *TestHelper

func SetupEnterprise

func SetupEnterprise() *TestHelper

func (*TestHelper) AddPermissionToRole

func (me *TestHelper) AddPermissionToRole(permission string, roleName string)

func (*TestHelper) AddUserToChannel

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

func (*TestHelper) CreateChannelWithClient

func (me *TestHelper) CreateChannelWithClient(client *model.Client4, channelType string) *model.Channel

func (*TestHelper) CreateChannelWithClientAndTeam

func (me *TestHelper) CreateChannelWithClientAndTeam(client *model.Client4, channelType string, teamId string) *model.Channel

func (*TestHelper) CreateClient

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

func (*TestHelper) CreateMessagePost

func (me *TestHelper) CreateMessagePost(message string) *model.Post

func (*TestHelper) CreateMessagePostNoClient

func (me *TestHelper) CreateMessagePostNoClient(channel *model.Channel, message string, createAtTime int64) *model.Post

func (*TestHelper) CreateMessagePostWithClient

func (me *TestHelper) CreateMessagePostWithClient(client *model.Client4, channel *model.Channel, message string) *model.Post

func (*TestHelper) CreatePinnedPost

func (me *TestHelper) CreatePinnedPost() *model.Post

func (*TestHelper) CreatePinnedPostWithClient

func (me *TestHelper) CreatePinnedPostWithClient(client *model.Client4, channel *model.Channel) *model.Post

func (*TestHelper) CreatePost

func (me *TestHelper) CreatePost() *model.Post

func (*TestHelper) CreatePostWithClient

func (me *TestHelper) CreatePostWithClient(client *model.Client4, channel *model.Channel) *model.Post

func (*TestHelper) CreatePrivateChannel

func (me *TestHelper) CreatePrivateChannel() *model.Channel

func (*TestHelper) CreatePublicChannel

func (me *TestHelper) CreatePublicChannel() *model.Channel

func (*TestHelper) CreateTeam

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

func (*TestHelper) CreateTeamWithClient

func (me *TestHelper) CreateTeamWithClient(client *model.Client4) *model.Team

func (*TestHelper) CreateUser

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

func (*TestHelper) CreateUserWithClient

func (me *TestHelper) CreateUserWithClient(client *model.Client4) *model.User

func (*TestHelper) CreateWebSocketClient

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

func (*TestHelper) CreateWebSocketSystemAdminClient

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

func (*TestHelper) GenerateTestEmail

func (me *TestHelper) GenerateTestEmail() string

func (*TestHelper) InitBasic

func (me *TestHelper) InitBasic() *TestHelper

func (*TestHelper) InitSystemAdmin

func (me *TestHelper) InitSystemAdmin() *TestHelper

func (*TestHelper) LinkUserToTeam

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

func (*TestHelper) LoginBasic

func (me *TestHelper) LoginBasic()

func (*TestHelper) LoginBasic2

func (me *TestHelper) LoginBasic2()

func (*TestHelper) LoginBasic2WithClient

func (me *TestHelper) LoginBasic2WithClient(client *model.Client4)

func (*TestHelper) LoginBasicWithClient

func (me *TestHelper) LoginBasicWithClient(client *model.Client4)

func (*TestHelper) LoginSystemAdmin

func (me *TestHelper) LoginSystemAdmin()

func (*TestHelper) LoginSystemAdminWithClient

func (me *TestHelper) LoginSystemAdminWithClient(client *model.Client4)

func (*TestHelper) LoginTeamAdmin

func (me *TestHelper) LoginTeamAdmin()

func (*TestHelper) LoginTeamAdminWithClient

func (me *TestHelper) LoginTeamAdminWithClient(client *model.Client4)

func (*TestHelper) MakeUserChannelAdmin

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

func (*TestHelper) RemovePermissionFromRole

func (me *TestHelper) RemovePermissionFromRole(permission string, roleName string)

func (*TestHelper) RestoreDefaultRolePermissions

func (me *TestHelper) RestoreDefaultRolePermissions(data map[string][]string)

func (*TestHelper) SaveDefaultRolePermissions

func (me *TestHelper) SaveDefaultRolePermissions() map[string][]string

func (*TestHelper) TearDown

func (me *TestHelper) TearDown()

func (*TestHelper) UpdateActiveUser

func (me *TestHelper) UpdateActiveUser(user *model.User, active bool)

func (*TestHelper) UpdateUserToNonTeamAdmin

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

func (*TestHelper) UpdateUserToTeamAdmin

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

Jump to

Keyboard shortcuts

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