First batch of new plugin api methods (#9022)

update api mocks

Generated new hooks

ChannelHasJoinedChannel Implementation

User Left Team/Channel Hook; User Joined Team Hook Implementation

Update RPC Client and Mocks

gofmt

go tests fix

Add Config API Methods

codegne

Add Channel Has Been Created Hook

Fix ChannelHasBeenCreated hook

fix missing context param

fix duplicate hooks; remove redudandcy
This commit is contained in:
Daniel Schalla
2018-07-07 00:32:55 +02:00
committed by Christopher Speller
parent 4c1ddcff10
commit 359f12db33
10 changed files with 1215 additions and 16 deletions

View File

@@ -24,6 +24,12 @@ type API interface {
// UnregisterCommand unregisters a command previously registered via RegisterCommand.
UnregisterCommand(teamId, trigger string) error
// GetConfig fetches the currently persisted config
GetConfig() *model.Config
// SaveConfig sets the given config and persists the changes
SaveConfig(config *model.Config) *model.AppError
// CreateUser creates a user.
CreateUser(user *model.User) (*model.User, *model.AppError)
@@ -48,6 +54,9 @@ type API interface {
// DeleteTeam deletes a team.
DeleteTeam(teamId string) *model.AppError
// GetTeam gets all teams.
GetTeams() ([]*model.Team, *model.AppError)
// GetTeam gets a team.
GetTeam(teamId string) (*model.Team, *model.AppError)
@@ -57,12 +66,33 @@ type API interface {
// UpdateTeam updates a team.
UpdateTeam(team *model.Team) (*model.Team, *model.AppError)
// CreateTeamMember creates a team membership.
CreateTeamMember(teamId, userId string) (*model.TeamMember, *model.AppError)
// CreateTeamMember creates a team membership for all provided user ids.
CreateTeamMembers(teamId string, userIds []string, requestorId string) ([]*model.TeamMember, *model.AppError)
// DeleteTeamMember deletes a team membership.
DeleteTeamMember(teamId, userId, requestorId string) *model.AppError
// GetTeamMembers returns the memberships of a specific team.
GetTeamMembers(teamId string, offset, limit int) ([]*model.TeamMember, *model.AppError)
// GetTeamMember returns a specific membership.
GetTeamMember(teamId, userId string) (*model.TeamMember, *model.AppError)
// UpdateTeamMemberRoles updates the role for a team membership.
UpdateTeamMemberRoles(teamId, userId, newRoles string) (*model.TeamMember, *model.AppError)
// CreateChannel creates a channel.
CreateChannel(channel *model.Channel) (*model.Channel, *model.AppError)
// DeleteChannel deletes a channel.
DeleteChannel(channelId string) *model.AppError
// GetChannels gets a list of all channels.
GetPublicChannelsForTeam(teamId string, offset, limit int) (*model.ChannelList, *model.AppError)
// GetChannel gets a channel.
GetChannel(channelId string) (*model.Channel, *model.AppError)
@@ -96,6 +126,9 @@ type API interface {
// CreatePost creates a post.
CreatePost(post *model.Post) (*model.Post, *model.AppError)
// SendEphemeralPost creates an ephemeral post.
SendEphemeralPost(userId string, post *model.Post) *model.Post
// DeletePost deletes a post.
DeletePost(postId string) *model.AppError

View File

@@ -257,6 +257,180 @@ func (s *HooksRPCServer) MessageHasBeenUpdated(args *MessageHasBeenUpdatedArgs,
return nil
}
func init() {
HookNameToId["ChannelHasBeenCreated"] = ChannelHasBeenCreatedId
}
type ChannelHasBeenCreatedArgs struct {
A *Context
B *model.Channel
}
type ChannelHasBeenCreatedReturns struct {
}
func (g *HooksRPCClient) ChannelHasBeenCreated(c *Context, channel *model.Channel) {
_args := &ChannelHasBeenCreatedArgs{c, channel}
_returns := &ChannelHasBeenCreatedReturns{}
if g.implemented[ChannelHasBeenCreatedId] {
if err := g.client.Call("Plugin.ChannelHasBeenCreated", _args, _returns); err != nil {
g.log.Error("RPC call ChannelHasBeenCreated to plugin failed.", mlog.Err(err))
}
}
return
}
func (s *HooksRPCServer) ChannelHasBeenCreated(args *ChannelHasBeenCreatedArgs, returns *ChannelHasBeenCreatedReturns) error {
if hook, ok := s.impl.(interface {
ChannelHasBeenCreated(c *Context, channel *model.Channel)
}); ok {
hook.ChannelHasBeenCreated(args.A, args.B)
} else {
return fmt.Errorf("Hook ChannelHasBeenCreated called but not implemented.")
}
return nil
}
func init() {
HookNameToId["UserHasJoinedChannel"] = UserHasJoinedChannelId
}
type UserHasJoinedChannelArgs struct {
A *Context
B *model.ChannelMember
C *model.User
}
type UserHasJoinedChannelReturns struct {
}
func (g *HooksRPCClient) UserHasJoinedChannel(c *Context, channelMember *model.ChannelMember, actor *model.User) {
_args := &UserHasJoinedChannelArgs{c, channelMember, actor}
_returns := &UserHasJoinedChannelReturns{}
if g.implemented[UserHasJoinedChannelId] {
if err := g.client.Call("Plugin.UserHasJoinedChannel", _args, _returns); err != nil {
g.log.Error("RPC call UserHasJoinedChannel to plugin failed.", mlog.Err(err))
}
}
return
}
func (s *HooksRPCServer) UserHasJoinedChannel(args *UserHasJoinedChannelArgs, returns *UserHasJoinedChannelReturns) error {
if hook, ok := s.impl.(interface {
UserHasJoinedChannel(c *Context, channelMember *model.ChannelMember, actor *model.User)
}); ok {
hook.UserHasJoinedChannel(args.A, args.B, args.C)
} else {
return fmt.Errorf("Hook UserHasJoinedChannel called but not implemented.")
}
return nil
}
func init() {
HookNameToId["UserHasLeftChannel"] = UserHasLeftChannelId
}
type UserHasLeftChannelArgs struct {
A *Context
B *model.ChannelMember
C *model.User
}
type UserHasLeftChannelReturns struct {
}
func (g *HooksRPCClient) UserHasLeftChannel(c *Context, channelMember *model.ChannelMember, actor *model.User) {
_args := &UserHasLeftChannelArgs{c, channelMember, actor}
_returns := &UserHasLeftChannelReturns{}
if g.implemented[UserHasLeftChannelId] {
if err := g.client.Call("Plugin.UserHasLeftChannel", _args, _returns); err != nil {
g.log.Error("RPC call UserHasLeftChannel to plugin failed.", mlog.Err(err))
}
}
return
}
func (s *HooksRPCServer) UserHasLeftChannel(args *UserHasLeftChannelArgs, returns *UserHasLeftChannelReturns) error {
if hook, ok := s.impl.(interface {
UserHasLeftChannel(c *Context, channelMember *model.ChannelMember, actor *model.User)
}); ok {
hook.UserHasLeftChannel(args.A, args.B, args.C)
} else {
return fmt.Errorf("Hook UserHasLeftChannel called but not implemented.")
}
return nil
}
func init() {
HookNameToId["UserHasJoinedTeam"] = UserHasJoinedTeamId
}
type UserHasJoinedTeamArgs struct {
A *Context
B *model.TeamMember
C *model.User
}
type UserHasJoinedTeamReturns struct {
}
func (g *HooksRPCClient) UserHasJoinedTeam(c *Context, teamMember *model.TeamMember, actor *model.User) {
_args := &UserHasJoinedTeamArgs{c, teamMember, actor}
_returns := &UserHasJoinedTeamReturns{}
if g.implemented[UserHasJoinedTeamId] {
if err := g.client.Call("Plugin.UserHasJoinedTeam", _args, _returns); err != nil {
g.log.Error("RPC call UserHasJoinedTeam to plugin failed.", mlog.Err(err))
}
}
return
}
func (s *HooksRPCServer) UserHasJoinedTeam(args *UserHasJoinedTeamArgs, returns *UserHasJoinedTeamReturns) error {
if hook, ok := s.impl.(interface {
UserHasJoinedTeam(c *Context, teamMember *model.TeamMember, actor *model.User)
}); ok {
hook.UserHasJoinedTeam(args.A, args.B, args.C)
} else {
return fmt.Errorf("Hook UserHasJoinedTeam called but not implemented.")
}
return nil
}
func init() {
HookNameToId["UserHasLeftTeam"] = UserHasLeftTeamId
}
type UserHasLeftTeamArgs struct {
A *Context
B *model.TeamMember
C *model.User
}
type UserHasLeftTeamReturns struct {
}
func (g *HooksRPCClient) UserHasLeftTeam(c *Context, teamMember *model.TeamMember, actor *model.User) {
_args := &UserHasLeftTeamArgs{c, teamMember, actor}
_returns := &UserHasLeftTeamReturns{}
if g.implemented[UserHasLeftTeamId] {
if err := g.client.Call("Plugin.UserHasLeftTeam", _args, _returns); err != nil {
g.log.Error("RPC call UserHasLeftTeam to plugin failed.", mlog.Err(err))
}
}
return
}
func (s *HooksRPCServer) UserHasLeftTeam(args *UserHasLeftTeamArgs, returns *UserHasLeftTeamReturns) error {
if hook, ok := s.impl.(interface {
UserHasLeftTeam(c *Context, teamMember *model.TeamMember, actor *model.User)
}); ok {
hook.UserHasLeftTeam(args.A, args.B, args.C)
} else {
return fmt.Errorf("Hook UserHasLeftTeam called but not implemented.")
}
return nil
}
type RegisterCommandArgs struct {
A *model.Command
}
@@ -314,6 +488,61 @@ func (s *APIRPCServer) UnregisterCommand(args *UnregisterCommandArgs, returns *U
return nil
}
type GetConfigArgs struct {
}
type GetConfigReturns struct {
A *model.Config
}
func (g *APIRPCClient) GetConfig() *model.Config {
_args := &GetConfigArgs{}
_returns := &GetConfigReturns{}
if err := g.client.Call("Plugin.GetConfig", _args, _returns); err != nil {
g.log.Error("RPC call to GetConfig API failed.", mlog.Err(err))
}
return _returns.A
}
func (s *APIRPCServer) GetConfig(args *GetConfigArgs, returns *GetConfigReturns) error {
if hook, ok := s.impl.(interface {
GetConfig() *model.Config
}); ok {
returns.A = hook.GetConfig()
} else {
return fmt.Errorf("API GetConfig called but not implemented.")
}
return nil
}
type SaveConfigArgs struct {
A *model.Config
}
type SaveConfigReturns struct {
A *model.AppError
}
func (g *APIRPCClient) SaveConfig(config *model.Config) *model.AppError {
_args := &SaveConfigArgs{config}
_returns := &SaveConfigReturns{}
if err := g.client.Call("Plugin.SaveConfig", _args, _returns); err != nil {
g.log.Error("RPC call to SaveConfig API failed.", mlog.Err(err))
}
return _returns.A
}
func (s *APIRPCServer) SaveConfig(args *SaveConfigArgs, returns *SaveConfigReturns) error {
if hook, ok := s.impl.(interface {
SaveConfig(config *model.Config) *model.AppError
}); ok {
returns.A = hook.SaveConfig(args.A)
} else {
return fmt.Errorf("API SaveConfig called but not implemented.")
}
return nil
}
type CreateUserArgs struct {
A *model.User
}
@@ -544,6 +773,34 @@ func (s *APIRPCServer) DeleteTeam(args *DeleteTeamArgs, returns *DeleteTeamRetur
return nil
}
type GetTeamsArgs struct {
}
type GetTeamsReturns struct {
A []*model.Team
B *model.AppError
}
func (g *APIRPCClient) GetTeams() ([]*model.Team, *model.AppError) {
_args := &GetTeamsArgs{}
_returns := &GetTeamsReturns{}
if err := g.client.Call("Plugin.GetTeams", _args, _returns); err != nil {
g.log.Error("RPC call to GetTeams API failed.", mlog.Err(err))
}
return _returns.A, _returns.B
}
func (s *APIRPCServer) GetTeams(args *GetTeamsArgs, returns *GetTeamsReturns) error {
if hook, ok := s.impl.(interface {
GetTeams() ([]*model.Team, *model.AppError)
}); ok {
returns.A, returns.B = hook.GetTeams()
} else {
return fmt.Errorf("API GetTeams called but not implemented.")
}
return nil
}
type GetTeamArgs struct {
A string
}
@@ -631,6 +888,189 @@ func (s *APIRPCServer) UpdateTeam(args *UpdateTeamArgs, returns *UpdateTeamRetur
return nil
}
type CreateTeamMemberArgs struct {
A string
B string
}
type CreateTeamMemberReturns struct {
A *model.TeamMember
B *model.AppError
}
func (g *APIRPCClient) CreateTeamMember(teamId, userId string) (*model.TeamMember, *model.AppError) {
_args := &CreateTeamMemberArgs{teamId, userId}
_returns := &CreateTeamMemberReturns{}
if err := g.client.Call("Plugin.CreateTeamMember", _args, _returns); err != nil {
g.log.Error("RPC call to CreateTeamMember API failed.", mlog.Err(err))
}
return _returns.A, _returns.B
}
func (s *APIRPCServer) CreateTeamMember(args *CreateTeamMemberArgs, returns *CreateTeamMemberReturns) error {
if hook, ok := s.impl.(interface {
CreateTeamMember(teamId, userId string) (*model.TeamMember, *model.AppError)
}); ok {
returns.A, returns.B = hook.CreateTeamMember(args.A, args.B)
} else {
return fmt.Errorf("API CreateTeamMember called but not implemented.")
}
return nil
}
type CreateTeamMembersArgs struct {
A string
B []string
C string
}
type CreateTeamMembersReturns struct {
A []*model.TeamMember
B *model.AppError
}
func (g *APIRPCClient) CreateTeamMembers(teamId string, userIds []string, requestorId string) ([]*model.TeamMember, *model.AppError) {
_args := &CreateTeamMembersArgs{teamId, userIds, requestorId}
_returns := &CreateTeamMembersReturns{}
if err := g.client.Call("Plugin.CreateTeamMembers", _args, _returns); err != nil {
g.log.Error("RPC call to CreateTeamMembers API failed.", mlog.Err(err))
}
return _returns.A, _returns.B
}
func (s *APIRPCServer) CreateTeamMembers(args *CreateTeamMembersArgs, returns *CreateTeamMembersReturns) error {
if hook, ok := s.impl.(interface {
CreateTeamMembers(teamId string, userIds []string, requestorId string) ([]*model.TeamMember, *model.AppError)
}); ok {
returns.A, returns.B = hook.CreateTeamMembers(args.A, args.B, args.C)
} else {
return fmt.Errorf("API CreateTeamMembers called but not implemented.")
}
return nil
}
type DeleteTeamMemberArgs struct {
A string
B string
C string
}
type DeleteTeamMemberReturns struct {
A *model.AppError
}
func (g *APIRPCClient) DeleteTeamMember(teamId, userId, requestorId string) *model.AppError {
_args := &DeleteTeamMemberArgs{teamId, userId, requestorId}
_returns := &DeleteTeamMemberReturns{}
if err := g.client.Call("Plugin.DeleteTeamMember", _args, _returns); err != nil {
g.log.Error("RPC call to DeleteTeamMember API failed.", mlog.Err(err))
}
return _returns.A
}
func (s *APIRPCServer) DeleteTeamMember(args *DeleteTeamMemberArgs, returns *DeleteTeamMemberReturns) error {
if hook, ok := s.impl.(interface {
DeleteTeamMember(teamId, userId, requestorId string) *model.AppError
}); ok {
returns.A = hook.DeleteTeamMember(args.A, args.B, args.C)
} else {
return fmt.Errorf("API DeleteTeamMember called but not implemented.")
}
return nil
}
type GetTeamMembersArgs struct {
A string
B int
C int
}
type GetTeamMembersReturns struct {
A []*model.TeamMember
B *model.AppError
}
func (g *APIRPCClient) GetTeamMembers(teamId string, offset, limit int) ([]*model.TeamMember, *model.AppError) {
_args := &GetTeamMembersArgs{teamId, offset, limit}
_returns := &GetTeamMembersReturns{}
if err := g.client.Call("Plugin.GetTeamMembers", _args, _returns); err != nil {
g.log.Error("RPC call to GetTeamMembers API failed.", mlog.Err(err))
}
return _returns.A, _returns.B
}
func (s *APIRPCServer) GetTeamMembers(args *GetTeamMembersArgs, returns *GetTeamMembersReturns) error {
if hook, ok := s.impl.(interface {
GetTeamMembers(teamId string, offset, limit int) ([]*model.TeamMember, *model.AppError)
}); ok {
returns.A, returns.B = hook.GetTeamMembers(args.A, args.B, args.C)
} else {
return fmt.Errorf("API GetTeamMembers called but not implemented.")
}
return nil
}
type GetTeamMemberArgs struct {
A string
B string
}
type GetTeamMemberReturns struct {
A *model.TeamMember
B *model.AppError
}
func (g *APIRPCClient) GetTeamMember(teamId, userId string) (*model.TeamMember, *model.AppError) {
_args := &GetTeamMemberArgs{teamId, userId}
_returns := &GetTeamMemberReturns{}
if err := g.client.Call("Plugin.GetTeamMember", _args, _returns); err != nil {
g.log.Error("RPC call to GetTeamMember API failed.", mlog.Err(err))
}
return _returns.A, _returns.B
}
func (s *APIRPCServer) GetTeamMember(args *GetTeamMemberArgs, returns *GetTeamMemberReturns) error {
if hook, ok := s.impl.(interface {
GetTeamMember(teamId, userId string) (*model.TeamMember, *model.AppError)
}); ok {
returns.A, returns.B = hook.GetTeamMember(args.A, args.B)
} else {
return fmt.Errorf("API GetTeamMember called but not implemented.")
}
return nil
}
type UpdateTeamMemberRolesArgs struct {
A string
B string
C string
}
type UpdateTeamMemberRolesReturns struct {
A *model.TeamMember
B *model.AppError
}
func (g *APIRPCClient) UpdateTeamMemberRoles(teamId, userId, newRoles string) (*model.TeamMember, *model.AppError) {
_args := &UpdateTeamMemberRolesArgs{teamId, userId, newRoles}
_returns := &UpdateTeamMemberRolesReturns{}
if err := g.client.Call("Plugin.UpdateTeamMemberRoles", _args, _returns); err != nil {
g.log.Error("RPC call to UpdateTeamMemberRoles API failed.", mlog.Err(err))
}
return _returns.A, _returns.B
}
func (s *APIRPCServer) UpdateTeamMemberRoles(args *UpdateTeamMemberRolesArgs, returns *UpdateTeamMemberRolesReturns) error {
if hook, ok := s.impl.(interface {
UpdateTeamMemberRoles(teamId, userId, newRoles string) (*model.TeamMember, *model.AppError)
}); ok {
returns.A, returns.B = hook.UpdateTeamMemberRoles(args.A, args.B, args.C)
} else {
return fmt.Errorf("API UpdateTeamMemberRoles called but not implemented.")
}
return nil
}
type CreateChannelArgs struct {
A *model.Channel
}
@@ -688,6 +1128,37 @@ func (s *APIRPCServer) DeleteChannel(args *DeleteChannelArgs, returns *DeleteCha
return nil
}
type GetPublicChannelsForTeamArgs struct {
A string
B int
C int
}
type GetPublicChannelsForTeamReturns struct {
A *model.ChannelList
B *model.AppError
}
func (g *APIRPCClient) GetPublicChannelsForTeam(teamId string, offset, limit int) (*model.ChannelList, *model.AppError) {
_args := &GetPublicChannelsForTeamArgs{teamId, offset, limit}
_returns := &GetPublicChannelsForTeamReturns{}
if err := g.client.Call("Plugin.GetPublicChannelsForTeam", _args, _returns); err != nil {
g.log.Error("RPC call to GetPublicChannelsForTeam API failed.", mlog.Err(err))
}
return _returns.A, _returns.B
}
func (s *APIRPCServer) GetPublicChannelsForTeam(args *GetPublicChannelsForTeamArgs, returns *GetPublicChannelsForTeamReturns) error {
if hook, ok := s.impl.(interface {
GetPublicChannelsForTeam(teamId string, offset, limit int) (*model.ChannelList, *model.AppError)
}); ok {
returns.A, returns.B = hook.GetPublicChannelsForTeam(args.A, args.B, args.C)
} else {
return fmt.Errorf("API GetPublicChannelsForTeam called but not implemented.")
}
return nil
}
type GetChannelArgs struct {
A string
}
@@ -1015,6 +1486,35 @@ func (s *APIRPCServer) CreatePost(args *CreatePostArgs, returns *CreatePostRetur
return nil
}
type SendEphemeralPostArgs struct {
A string
B *model.Post
}
type SendEphemeralPostReturns struct {
A *model.Post
}
func (g *APIRPCClient) SendEphemeralPost(userId string, post *model.Post) *model.Post {
_args := &SendEphemeralPostArgs{userId, post}
_returns := &SendEphemeralPostReturns{}
if err := g.client.Call("Plugin.SendEphemeralPost", _args, _returns); err != nil {
g.log.Error("RPC call to SendEphemeralPost API failed.", mlog.Err(err))
}
return _returns.A
}
func (s *APIRPCServer) SendEphemeralPost(args *SendEphemeralPostArgs, returns *SendEphemeralPostReturns) error {
if hook, ok := s.impl.(interface {
SendEphemeralPost(userId string, post *model.Post) *model.Post
}); ok {
returns.A = hook.SendEphemeralPost(args.A, args.B)
} else {
return fmt.Errorf("API SendEphemeralPost called but not implemented.")
}
return nil
}
type DeletePostArgs struct {
A string
}

View File

@@ -21,6 +21,11 @@ const (
MessageWillBeUpdatedId = 6
MessageHasBeenPostedId = 7
MessageHasBeenUpdatedId = 8
UserHasJoinedChannelId = 9
UserHasLeftChannelId = 10
UserHasJoinedTeamId = 11
UserHasLeftTeamId = 12
ChannelHasBeenCreatedId = 13
TotalHooksId = iota
)
@@ -54,7 +59,7 @@ type Hooks interface {
// API.
ExecuteCommand(c *Context, args *model.CommandArgs) (*model.CommandResponse, *model.AppError)
// MessageWillBePosted is invoked when a message is posted by a user before it is commited
// MessageWillBePosted is invoked when a message is posted by a user before it is committed
// to the database. If you also want to act on edited posts, see MessageWillBeUpdated.
// Return values should be the modified post or nil if rejected and an explanation for the user.
//
@@ -64,7 +69,7 @@ type Hooks interface {
// created the post.
MessageWillBePosted(c *Context, post *model.Post) (*model.Post, string)
// MessageWillBeUpdated is invoked when a message is updated by a user before it is commited
// MessageWillBeUpdated is invoked when a message is updated by a user before it is committed
// to the database. If you also want to act on new posts, see MessageWillBePosted.
// Return values should be the modified post or nil if rejected and an explanation for the user.
// On rejection, the post will be kept in its previous state.
@@ -75,15 +80,34 @@ type Hooks interface {
// updated the post.
MessageWillBeUpdated(c *Context, newPost, oldPost *model.Post) (*model.Post, string)
// MessageHasBeenPosted is invoked after the message has been commited to the databse.
// MessageHasBeenPosted is invoked after the message has been committed to the database.
// If you need to modify or reject the post, see MessageWillBePosted
// Note that this method will be called for posts created by plugins, including the plugin that
// created the post.
MessageHasBeenPosted(c *Context, post *model.Post)
// MessageHasBeenUpdated is invoked after a message is updated and has been updated in the databse.
// MessageHasBeenUpdated is invoked after a message is updated and has been updated in the database.
// If you need to modify or reject the post, see MessageWillBeUpdated
// Note that this method will be called for posts created by plugins, including the plugin that
// created the post.
MessageHasBeenUpdated(c *Context, newPost, oldPost *model.Post)
// ChannelHasBeenCreated is invoked after the channel has been committed to the database.
ChannelHasBeenCreated(c *Context, channel *model.Channel)
// UserHasJoinedChannel is invoked after the membership has been committed to the database.
// If actor is not nil, the user was invited to the channel by the actor.
UserHasJoinedChannel(c *Context, channelMember *model.ChannelMember, actor *model.User)
// UserHasLeftChannel is invoked after the membership has been removed from the database.
// If actor is not nil, the user was removed from the channel by the actor.
UserHasLeftChannel(c *Context, channelMember *model.ChannelMember, actor *model.User)
// UserHasJoinedTeam is invoked after the membership has been committed to the database.
// If actor is not nil, the user was added to the team by the actor.
UserHasJoinedTeam(c *Context, teamMember *model.TeamMember, actor *model.User)
// UserHasLeftTeam is invoked after the membership has been removed from the database.
// If actor is not nil, the user was removed from the team by the actor.
UserHasLeftTeam(c *Context, teamMember *model.TeamMember, actor *model.User)
}

View File

@@ -112,6 +112,56 @@ func (_m *MockAPI) CreateTeam(team *model.Team) (*model.Team, *model.AppError) {
return r0, r1
}
// CreateTeamMember provides a mock function with given fields: teamId, userId
func (_m *MockAPI) CreateTeamMember(teamId string, userId string) (*model.TeamMember, *model.AppError) {
ret := _m.Called(teamId, userId)
var r0 *model.TeamMember
if rf, ok := ret.Get(0).(func(string, string) *model.TeamMember); ok {
r0 = rf(teamId, userId)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.TeamMember)
}
}
var r1 *model.AppError
if rf, ok := ret.Get(1).(func(string, string) *model.AppError); ok {
r1 = rf(teamId, userId)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
}
// CreateTeamMembers provides a mock function with given fields: teamId, userIds, requestorId
func (_m *MockAPI) CreateTeamMembers(teamId string, userIds []string, requestorId string) ([]*model.TeamMember, *model.AppError) {
ret := _m.Called(teamId, userIds, requestorId)
var r0 []*model.TeamMember
if rf, ok := ret.Get(0).(func(string, []string, string) []*model.TeamMember); ok {
r0 = rf(teamId, userIds, requestorId)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).([]*model.TeamMember)
}
}
var r1 *model.AppError
if rf, ok := ret.Get(1).(func(string, []string, string) *model.AppError); ok {
r1 = rf(teamId, userIds, requestorId)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
}
// CreateUser provides a mock function with given fields: user
func (_m *MockAPI) CreateUser(user *model.User) (*model.User, *model.AppError) {
ret := _m.Called(user)
@@ -201,6 +251,22 @@ func (_m *MockAPI) DeleteTeam(teamId string) *model.AppError {
return r0
}
// DeleteTeamMember provides a mock function with given fields: teamId, userId, requestorId
func (_m *MockAPI) DeleteTeamMember(teamId string, userId string, requestorId string) *model.AppError {
ret := _m.Called(teamId, userId, requestorId)
var r0 *model.AppError
if rf, ok := ret.Get(0).(func(string, string, string) *model.AppError); ok {
r0 = rf(teamId, userId, requestorId)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.AppError)
}
}
return r0
}
// DeleteUser provides a mock function with given fields: userId
func (_m *MockAPI) DeleteUser(userId string) *model.AppError {
ret := _m.Called(userId)
@@ -292,6 +358,22 @@ func (_m *MockAPI) GetChannelMember(channelId string, userId string) (*model.Cha
return r0, r1
}
// GetConfig provides a mock function with given fields:
func (_m *MockAPI) GetConfig() *model.Config {
ret := _m.Called()
var r0 *model.Config
if rf, ok := ret.Get(0).(func() *model.Config); ok {
r0 = rf()
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.Config)
}
}
return r0
}
// GetDirectChannel provides a mock function with given fields: userId1, userId2
func (_m *MockAPI) GetDirectChannel(userId1 string, userId2 string) (*model.Channel, *model.AppError) {
ret := _m.Called(userId1, userId2)
@@ -367,6 +449,31 @@ func (_m *MockAPI) GetPost(postId string) (*model.Post, *model.AppError) {
return r0, r1
}
// GetPublicChannelsForTeam provides a mock function with given fields: teamId, offset, limit
func (_m *MockAPI) GetPublicChannelsForTeam(teamId string, offset int, limit int) (*model.ChannelList, *model.AppError) {
ret := _m.Called(teamId, offset, limit)
var r0 *model.ChannelList
if rf, ok := ret.Get(0).(func(string, int, int) *model.ChannelList); ok {
r0 = rf(teamId, offset, limit)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.ChannelList)
}
}
var r1 *model.AppError
if rf, ok := ret.Get(1).(func(string, int, int) *model.AppError); ok {
r1 = rf(teamId, offset, limit)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
}
// GetTeam provides a mock function with given fields: teamId
func (_m *MockAPI) GetTeam(teamId string) (*model.Team, *model.AppError) {
ret := _m.Called(teamId)
@@ -417,6 +524,81 @@ func (_m *MockAPI) GetTeamByName(name string) (*model.Team, *model.AppError) {
return r0, r1
}
// GetTeamMember provides a mock function with given fields: teamId, userId
func (_m *MockAPI) GetTeamMember(teamId string, userId string) (*model.TeamMember, *model.AppError) {
ret := _m.Called(teamId, userId)
var r0 *model.TeamMember
if rf, ok := ret.Get(0).(func(string, string) *model.TeamMember); ok {
r0 = rf(teamId, userId)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.TeamMember)
}
}
var r1 *model.AppError
if rf, ok := ret.Get(1).(func(string, string) *model.AppError); ok {
r1 = rf(teamId, userId)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
}
// GetTeamMembers provides a mock function with given fields: teamId, offset, limit
func (_m *MockAPI) GetTeamMembers(teamId string, offset int, limit int) ([]*model.TeamMember, *model.AppError) {
ret := _m.Called(teamId, offset, limit)
var r0 []*model.TeamMember
if rf, ok := ret.Get(0).(func(string, int, int) []*model.TeamMember); ok {
r0 = rf(teamId, offset, limit)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).([]*model.TeamMember)
}
}
var r1 *model.AppError
if rf, ok := ret.Get(1).(func(string, int, int) *model.AppError); ok {
r1 = rf(teamId, offset, limit)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
}
// GetTeams provides a mock function with given fields:
func (_m *MockAPI) GetTeams() ([]*model.Team, *model.AppError) {
ret := _m.Called()
var r0 []*model.Team
if rf, ok := ret.Get(0).(func() []*model.Team); ok {
r0 = rf()
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).([]*model.Team)
}
}
var r1 *model.AppError
if rf, ok := ret.Get(1).(func() *model.AppError); ok {
r1 = rf()
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
}
// GetUser provides a mock function with given fields: userId
func (_m *MockAPI) GetUser(userId string) (*model.User, *model.AppError) {
ret := _m.Called(userId)
@@ -614,6 +796,38 @@ func (_m *MockAPI) RegisterCommand(command *model.Command) error {
return r0
}
// SaveConfig provides a mock function with given fields: config
func (_m *MockAPI) SaveConfig(config *model.Config) *model.AppError {
ret := _m.Called(config)
var r0 *model.AppError
if rf, ok := ret.Get(0).(func(*model.Config) *model.AppError); ok {
r0 = rf(config)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.AppError)
}
}
return r0
}
// SendEphemeralPost provides a mock function with given fields: userId, post
func (_m *MockAPI) SendEphemeralPost(userId string, post *model.Post) *model.Post {
ret := _m.Called(userId, post)
var r0 *model.Post
if rf, ok := ret.Get(0).(func(string, *model.Post) *model.Post); ok {
r0 = rf(userId, post)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.Post)
}
}
return r0
}
// UnregisterCommand provides a mock function with given fields: teamId, trigger
func (_m *MockAPI) UnregisterCommand(teamId string, trigger string) error {
ret := _m.Called(teamId, trigger)
@@ -753,6 +967,31 @@ func (_m *MockAPI) UpdateTeam(team *model.Team) (*model.Team, *model.AppError) {
return r0, r1
}
// UpdateTeamMemberRoles provides a mock function with given fields: teamId, userId, newRoles
func (_m *MockAPI) UpdateTeamMemberRoles(teamId string, userId string, newRoles string) (*model.TeamMember, *model.AppError) {
ret := _m.Called(teamId, userId, newRoles)
var r0 *model.TeamMember
if rf, ok := ret.Get(0).(func(string, string, string) *model.TeamMember); ok {
r0 = rf(teamId, userId, newRoles)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.TeamMember)
}
}
var r1 *model.AppError
if rf, ok := ret.Get(1).(func(string, string, string) *model.AppError); ok {
r1 = rf(teamId, userId, newRoles)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
}
// UpdateUser provides a mock function with given fields: user
func (_m *MockAPI) UpdateUser(user *model.User) (*model.User, *model.AppError) {
ret := _m.Called(user)

View File

@@ -112,6 +112,56 @@ func (_m *API) CreateTeam(team *model.Team) (*model.Team, *model.AppError) {
return r0, r1
}
// CreateTeamMember provides a mock function with given fields: teamId, userId
func (_m *API) CreateTeamMember(teamId string, userId string) (*model.TeamMember, *model.AppError) {
ret := _m.Called(teamId, userId)
var r0 *model.TeamMember
if rf, ok := ret.Get(0).(func(string, string) *model.TeamMember); ok {
r0 = rf(teamId, userId)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.TeamMember)
}
}
var r1 *model.AppError
if rf, ok := ret.Get(1).(func(string, string) *model.AppError); ok {
r1 = rf(teamId, userId)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
}
// CreateTeamMembers provides a mock function with given fields: teamId, userIds, requestorId
func (_m *API) CreateTeamMembers(teamId string, userIds []string, requestorId string) ([]*model.TeamMember, *model.AppError) {
ret := _m.Called(teamId, userIds, requestorId)
var r0 []*model.TeamMember
if rf, ok := ret.Get(0).(func(string, []string, string) []*model.TeamMember); ok {
r0 = rf(teamId, userIds, requestorId)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).([]*model.TeamMember)
}
}
var r1 *model.AppError
if rf, ok := ret.Get(1).(func(string, []string, string) *model.AppError); ok {
r1 = rf(teamId, userIds, requestorId)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
}
// CreateUser provides a mock function with given fields: user
func (_m *API) CreateUser(user *model.User) (*model.User, *model.AppError) {
ret := _m.Called(user)
@@ -201,6 +251,22 @@ func (_m *API) DeleteTeam(teamId string) *model.AppError {
return r0
}
// DeleteTeamMember provides a mock function with given fields: teamId, userId, requestorId
func (_m *API) DeleteTeamMember(teamId string, userId string, requestorId string) *model.AppError {
ret := _m.Called(teamId, userId, requestorId)
var r0 *model.AppError
if rf, ok := ret.Get(0).(func(string, string, string) *model.AppError); ok {
r0 = rf(teamId, userId, requestorId)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.AppError)
}
}
return r0
}
// DeleteUser provides a mock function with given fields: userId
func (_m *API) DeleteUser(userId string) *model.AppError {
ret := _m.Called(userId)
@@ -292,6 +358,22 @@ func (_m *API) GetChannelMember(channelId string, userId string) (*model.Channel
return r0, r1
}
// GetConfig provides a mock function with given fields:
func (_m *API) GetConfig() *model.Config {
ret := _m.Called()
var r0 *model.Config
if rf, ok := ret.Get(0).(func() *model.Config); ok {
r0 = rf()
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.Config)
}
}
return r0
}
// GetDirectChannel provides a mock function with given fields: userId1, userId2
func (_m *API) GetDirectChannel(userId1 string, userId2 string) (*model.Channel, *model.AppError) {
ret := _m.Called(userId1, userId2)
@@ -367,6 +449,31 @@ func (_m *API) GetPost(postId string) (*model.Post, *model.AppError) {
return r0, r1
}
// GetPublicChannelsForTeam provides a mock function with given fields: teamId, offset, limit
func (_m *API) GetPublicChannelsForTeam(teamId string, offset int, limit int) (*model.ChannelList, *model.AppError) {
ret := _m.Called(teamId, offset, limit)
var r0 *model.ChannelList
if rf, ok := ret.Get(0).(func(string, int, int) *model.ChannelList); ok {
r0 = rf(teamId, offset, limit)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.ChannelList)
}
}
var r1 *model.AppError
if rf, ok := ret.Get(1).(func(string, int, int) *model.AppError); ok {
r1 = rf(teamId, offset, limit)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
}
// GetTeam provides a mock function with given fields: teamId
func (_m *API) GetTeam(teamId string) (*model.Team, *model.AppError) {
ret := _m.Called(teamId)
@@ -417,6 +524,81 @@ func (_m *API) GetTeamByName(name string) (*model.Team, *model.AppError) {
return r0, r1
}
// GetTeamMember provides a mock function with given fields: teamId, userId
func (_m *API) GetTeamMember(teamId string, userId string) (*model.TeamMember, *model.AppError) {
ret := _m.Called(teamId, userId)
var r0 *model.TeamMember
if rf, ok := ret.Get(0).(func(string, string) *model.TeamMember); ok {
r0 = rf(teamId, userId)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.TeamMember)
}
}
var r1 *model.AppError
if rf, ok := ret.Get(1).(func(string, string) *model.AppError); ok {
r1 = rf(teamId, userId)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
}
// GetTeamMembers provides a mock function with given fields: teamId, offset, limit
func (_m *API) GetTeamMembers(teamId string, offset int, limit int) ([]*model.TeamMember, *model.AppError) {
ret := _m.Called(teamId, offset, limit)
var r0 []*model.TeamMember
if rf, ok := ret.Get(0).(func(string, int, int) []*model.TeamMember); ok {
r0 = rf(teamId, offset, limit)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).([]*model.TeamMember)
}
}
var r1 *model.AppError
if rf, ok := ret.Get(1).(func(string, int, int) *model.AppError); ok {
r1 = rf(teamId, offset, limit)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
}
// GetTeams provides a mock function with given fields:
func (_m *API) GetTeams() ([]*model.Team, *model.AppError) {
ret := _m.Called()
var r0 []*model.Team
if rf, ok := ret.Get(0).(func() []*model.Team); ok {
r0 = rf()
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).([]*model.Team)
}
}
var r1 *model.AppError
if rf, ok := ret.Get(1).(func() *model.AppError); ok {
r1 = rf()
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
}
// GetUser provides a mock function with given fields: userId
func (_m *API) GetUser(userId string) (*model.User, *model.AppError) {
ret := _m.Called(userId)
@@ -614,6 +796,38 @@ func (_m *API) RegisterCommand(command *model.Command) error {
return r0
}
// SaveConfig provides a mock function with given fields: config
func (_m *API) SaveConfig(config *model.Config) *model.AppError {
ret := _m.Called(config)
var r0 *model.AppError
if rf, ok := ret.Get(0).(func(*model.Config) *model.AppError); ok {
r0 = rf(config)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.AppError)
}
}
return r0
}
// SendEphemeralPost provides a mock function with given fields: userId, post
func (_m *API) SendEphemeralPost(userId string, post *model.Post) *model.Post {
ret := _m.Called(userId, post)
var r0 *model.Post
if rf, ok := ret.Get(0).(func(string, *model.Post) *model.Post); ok {
r0 = rf(userId, post)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.Post)
}
}
return r0
}
// UnregisterCommand provides a mock function with given fields: teamId, trigger
func (_m *API) UnregisterCommand(teamId string, trigger string) error {
ret := _m.Called(teamId, trigger)
@@ -753,6 +967,31 @@ func (_m *API) UpdateTeam(team *model.Team) (*model.Team, *model.AppError) {
return r0, r1
}
// UpdateTeamMemberRoles provides a mock function with given fields: teamId, userId, newRoles
func (_m *API) UpdateTeamMemberRoles(teamId string, userId string, newRoles string) (*model.TeamMember, *model.AppError) {
ret := _m.Called(teamId, userId, newRoles)
var r0 *model.TeamMember
if rf, ok := ret.Get(0).(func(string, string, string) *model.TeamMember); ok {
r0 = rf(teamId, userId, newRoles)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.TeamMember)
}
}
var r1 *model.AppError
if rf, ok := ret.Get(1).(func(string, string, string) *model.AppError); ok {
r1 = rf(teamId, userId, newRoles)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
}
// UpdateUser provides a mock function with given fields: user
func (_m *API) UpdateUser(user *model.User) (*model.User, *model.AppError) {
ret := _m.Called(user)

View File

@@ -14,6 +14,11 @@ type Hooks struct {
mock.Mock
}
// ChannelHasBeenCreated provides a mock function with given fields: c, channel
func (_m *Hooks) ChannelHasBeenCreated(c *plugin.Context, channel *model.Channel) {
_m.Called(c, channel)
}
// ExecuteCommand provides a mock function with given fields: c, args
func (_m *Hooks) ExecuteCommand(c *plugin.Context, args *model.CommandArgs) (*model.CommandResponse, *model.AppError) {
ret := _m.Called(c, args)
@@ -164,3 +169,23 @@ func (_m *Hooks) OnDeactivate() error {
func (_m *Hooks) ServeHTTP(c *plugin.Context, w http.ResponseWriter, r *http.Request) {
_m.Called(c, w, r)
}
// UserHasJoinedChannel provides a mock function with given fields: c, channelMember, actor
func (_m *Hooks) UserHasJoinedChannel(c *plugin.Context, channelMember *model.ChannelMember, actor *model.User) {
_m.Called(c, channelMember, actor)
}
// UserHasJoinedTeam provides a mock function with given fields: c, teamMember, actor
func (_m *Hooks) UserHasJoinedTeam(c *plugin.Context, teamMember *model.TeamMember, actor *model.User) {
_m.Called(c, teamMember, actor)
}
// UserHasLeftChannel provides a mock function with given fields: c, channelMember, actor
func (_m *Hooks) UserHasLeftChannel(c *plugin.Context, channelMember *model.ChannelMember, actor *model.User) {
_m.Called(c, channelMember, actor)
}
// UserHasLeftTeam provides a mock function with given fields: c, teamMember, actor
func (_m *Hooks) UserHasLeftTeam(c *plugin.Context, teamMember *model.TeamMember, actor *model.User) {
_m.Called(c, teamMember, actor)
}