api4

package
v3.10.2 Latest Latest
Warning

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

Go to latest
Published: Jul 14, 2017 License: AGPL-3.0, Apache-2.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PAGE_DEFAULT     = 0
	PER_PAGE_DEFAULT = 60
	PER_PAGE_MAXIMUM = 200
)
View Source
const (
	FILE_TEAM_ID = "noteam"
)
View Source
const (
	MAX_ADD_MEMBERS_BATCH = 20
)
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 UNSAFE_CONTENT_TYPES = [...]string{
	"application/javascript",
	"application/ecmascript",
	"text/javascript",
	"text/ecmascript",
	"application/x-javascript",
	"text/html",
}

Functions

func ApiHandler

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

func ApiHandlerTrustRequester

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

func ApiSessionRequired

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

func ApiSessionRequiredMfa

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

func ApiSessionRequiredTrustRequester

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

func CanManageChannel added in v3.8.0

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

func CheckBadRequestStatus

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

func CheckCreatedStatus added in v3.8.0

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 added in v3.8.0

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 added in v3.8.0

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

func CheckPayLoadTooLargeStatus added in v3.9.0

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

func CheckTeamSanitization added in v3.8.0

func CheckTeamSanitization(t *testing.T, team *model.Team)

func CheckUnauthorizedStatus

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

func CheckUserSanitization

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

func GenerateTestAppName added in v3.9.0

func GenerateTestAppName() string

func GenerateTestChannelName

func GenerateTestChannelName() string

func GenerateTestEmail

func GenerateTestEmail() string

func GenerateTestId

func GenerateTestId() string

func GenerateTestTeamName

func GenerateTestTeamName() string

func GenerateTestUsername

func GenerateTestUsername() string

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 InitApi

func InitApi(full bool)

func InitBrand added in v3.8.0

func InitBrand()

func InitChannel

func InitChannel()

func InitCluster added in v3.8.0

func InitCluster()

func InitCommand added in v3.8.0

func InitCommand()

func InitCompliance added in v3.8.0

func InitCompliance()

func InitEmoji added in v3.9.0

func InitEmoji()

func InitFile

func InitFile()

func InitJob added in v3.10.0

func InitJob()

func InitLdap added in v3.8.0

func InitLdap()

func InitOAuth added in v3.9.0

func InitOAuth()

func InitOpenGraph added in v3.10.0

func InitOpenGraph()

func InitPost

func InitPost()

func InitPreference

func InitPreference()

func InitReaction added in v3.9.0

func InitReaction()

func InitRouter

func InitRouter()

func InitSaml added in v3.8.0

func InitSaml()

func InitStatus added in v3.8.0

func InitStatus()

func InitSystem

func InitSystem()

func InitTeam

func InitTeam()

func InitUser

func InitUser()

func InitWebSocket added in v3.8.0

func InitWebSocket()

func InitWebhook

func InitWebhook()

func InitWebrtc added in v3.9.0

func InitWebrtc()

func LinkUserToTeam

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

func Logout

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

func MakeUserChannelAdmin added in v3.8.0

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

func NewInvalidParamError

func NewInvalidParamError(parameter string) *model.AppError

func NewInvalidUrlParamError

func NewInvalidUrlParamError(parameter string) *model.AppError

func ReturnStatusOK

func ReturnStatusOK(w http.ResponseWriter)

func TearDown

func TearDown()

func UpdateUserToNonTeamAdmin added in v3.8.0

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

func UpdateUserToTeamAdmin added in v3.8.0

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

func VerifyUserEmail

func VerifyUserEmail(userId string)

Types

type ApiParams

type ApiParams struct {
	UserId         string
	TeamId         string
	ChannelId      string
	PostId         string
	FileId         string
	CommandId      string
	HookId         string
	ReportId       string
	EmojiId        string
	AppId          string
	Email          string
	Username       string
	TeamName       string
	ChannelName    string
	PreferenceName string
	EmojiName      string
	Category       string
	Service        string
	JobId          string
	JobType        string
	Page           int
	PerPage        int
}

func ApiParamsFromRequest

func ApiParamsFromRequest(r *http.Request) *ApiParams

type Context

type Context struct {
	Session   model.Session
	Params    *ApiParams
	Err       *model.AppError
	T         goi18n.TranslateFunc
	RequestId string
	IpAddress string
	Path      string
	// contains filtered or unexported fields
}

func (*Context) GetSiteURLHeader added in v3.8.0

func (c *Context) GetSiteURLHeader() string

func (*Context) IsSystemAdmin

func (c *Context) IsSystemAdmin() bool

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) RequireAppId added in v3.9.0

func (c *Context) RequireAppId() *Context

func (*Context) RequireCategory

func (c *Context) RequireCategory() *Context

func (*Context) RequireChannelId

func (c *Context) RequireChannelId() *Context

func (*Context) RequireChannelName

func (c *Context) RequireChannelName() *Context

func (*Context) RequireCommandId added in v3.9.0

func (c *Context) RequireCommandId() *Context

func (*Context) RequireEmail

func (c *Context) RequireEmail() *Context

func (*Context) RequireEmojiId added in v3.9.0

func (c *Context) RequireEmojiId() *Context

func (*Context) RequireEmojiName added in v3.9.0

func (c *Context) RequireEmojiName() *Context

func (*Context) RequireFileId

func (c *Context) RequireFileId() *Context

func (*Context) RequireHookId added in v3.8.0

func (c *Context) RequireHookId() *Context

func (*Context) RequireJobId added in v3.10.0

func (c *Context) RequireJobId() *Context

func (*Context) RequireJobType added in v3.10.0

func (c *Context) RequireJobType() *Context

func (*Context) RequirePostId

func (c *Context) RequirePostId() *Context

func (*Context) RequirePreferenceName

func (c *Context) RequirePreferenceName() *Context

func (*Context) RequireReportId added in v3.8.0

func (c *Context) RequireReportId() *Context

func (*Context) RequireService added in v3.9.0

func (c *Context) RequireService() *Context

func (*Context) RequireTeamId

func (c *Context) RequireTeamId() *Context

func (*Context) RequireTeamName

func (c *Context) RequireTeamName() *Context

func (*Context) RequireUserId

func (c *Context) RequireUserId() *Context

func (*Context) RequireUsername

func (c *Context) RequireUsername() *Context

func (*Context) SessionRequired

func (c *Context) SessionRequired()

func (*Context) SetInvalidParam

func (c *Context) SetInvalidParam(parameter string)

func (*Context) SetInvalidUrlParam

func (c *Context) SetInvalidUrlParam(parameter string)

func (*Context) SetPermissionError

func (c *Context) SetPermissionError(permission *model.Permission)

func (*Context) SetSiteURLHeader added in v3.8.0

func (c *Context) SetSiteURLHeader(url string)

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

	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]+}'
	CommandsForTeam *mux.Router // 'api/v4/teams/{team_id:[A-Za-z0-9]+}/commands'

	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'

	LDAP *mux.Router // 'api/v4/ldap'

	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'

	Emojis *mux.Router // 'api/v4/emoji'
	Emoji  *mux.Router // 'api/v4/emoji/{emoji_id:[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'
}
var BaseRoutes *Routes

type TestHelper

type TestHelper struct {
	Client              *model.Client4
	BasicUser           *model.User
	BasicUser2          *model.User
	TeamAdminUser       *model.User
	BasicTeam           *model.Team
	BasicChannel        *model.Channel
	BasicPrivateChannel *model.Channel
	BasicChannel2       *model.Channel
	BasicPost           *model.Post

	SystemAdminClient *model.Client4
	SystemAdminUser   *model.User
}

func Setup

func Setup() *TestHelper

func SetupEnterprise added in v3.8.0

func SetupEnterprise() *TestHelper

func (*TestHelper) CreateChannelWithClient

func (me *TestHelper) CreateChannelWithClient(client *model.Client4, channelType 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) CreateMessagePostWithClient

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

func (*TestHelper) CreatePinnedPost added in v3.8.0

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

func (*TestHelper) CreatePinnedPostWithClient added in v3.8.0

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 added in v3.8.0

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

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

Jump to

Keyboard shortcuts

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