make GetChannelByName take teamId first (#9134)

* make GetChannelByName take teamId first

I think it is more natural to accept `teamId`, then `channelName`,
given the pattern followed by other Plugin API methods and even the SQL
Store itself. The App layer seems unusual in accepting `channelName`
first.

This also re-generates the mocks fixing the parameter order for the
recently added `UserStatus` APIs.

* add GetChannelByNameForTeamName
This commit is contained in:
Jesse Hallam
2018-07-20 12:03:08 -04:00
committed by Christopher Speller
parent 610ac5a53c
commit 908a682fcf
5 changed files with 84 additions and 22 deletions

View File

@@ -101,14 +101,17 @@ type API interface {
// DeleteChannel deletes a channel.
DeleteChannel(channelId string) *model.AppError
// GetChannels gets a list of all channels.
// GetPublicChannelsForTeam 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)
// GetChannelByName gets a channel by its name.
GetChannelByName(name, teamId string) (*model.Channel, *model.AppError)
// GetChannelByName gets a channel by its name, given a team id.
GetChannelByName(teamId, name string) (*model.Channel, *model.AppError)
// GetChannelByNameForTeamName gets a channel by its name, given a team name.
GetChannelByNameForTeamName(teamName, channelName string) (*model.Channel, *model.AppError)
// GetDirectChannel gets a direct message channel.
GetDirectChannel(userId1, userId2 string) (*model.Channel, *model.AppError)
@@ -149,13 +152,13 @@ type API interface {
// UpdatePost updates a post.
UpdatePost(post *model.Post) (*model.Post, *model.AppError)
// Set will store a key-value pair, unique per plugin.
// KVSet will store a key-value pair, unique per plugin.
KVSet(key string, value []byte) *model.AppError
// Get will retrieve a value based on the key. Returns nil for non-existent keys.
// KVGet will retrieve a value based on the key. Returns nil for non-existent keys.
KVGet(key string) ([]byte, *model.AppError)
// Delete will remove a key-value pair. Returns nil for non-existent keys.
// KVDelete will remove a key-value pair. Returns nil for non-existent keys.
KVDelete(key string) *model.AppError
// PublishWebSocketEvent sends an event to WebSocket connections.

View File

@@ -1286,8 +1286,8 @@ type Z_GetChannelByNameReturns struct {
B *model.AppError
}
func (g *apiRPCClient) GetChannelByName(name, teamId string) (*model.Channel, *model.AppError) {
_args := &Z_GetChannelByNameArgs{name, teamId}
func (g *apiRPCClient) GetChannelByName(teamId, name string) (*model.Channel, *model.AppError) {
_args := &Z_GetChannelByNameArgs{teamId, name}
_returns := &Z_GetChannelByNameReturns{}
if err := g.client.Call("Plugin.GetChannelByName", _args, _returns); err != nil {
g.log.Error("RPC call to GetChannelByName API failed.", mlog.Err(err))
@@ -1297,7 +1297,7 @@ func (g *apiRPCClient) GetChannelByName(name, teamId string) (*model.Channel, *m
func (s *apiRPCServer) GetChannelByName(args *Z_GetChannelByNameArgs, returns *Z_GetChannelByNameReturns) error {
if hook, ok := s.impl.(interface {
GetChannelByName(name, teamId string) (*model.Channel, *model.AppError)
GetChannelByName(teamId, name string) (*model.Channel, *model.AppError)
}); ok {
returns.A, returns.B = hook.GetChannelByName(args.A, args.B)
} else {
@@ -1306,6 +1306,36 @@ func (s *apiRPCServer) GetChannelByName(args *Z_GetChannelByNameArgs, returns *Z
return nil
}
type Z_GetChannelByNameForTeamNameArgs struct {
A string
B string
}
type Z_GetChannelByNameForTeamNameReturns struct {
A *model.Channel
B *model.AppError
}
func (g *apiRPCClient) GetChannelByNameForTeamName(teamName, channelName string) (*model.Channel, *model.AppError) {
_args := &Z_GetChannelByNameForTeamNameArgs{teamName, channelName}
_returns := &Z_GetChannelByNameForTeamNameReturns{}
if err := g.client.Call("Plugin.GetChannelByNameForTeamName", _args, _returns); err != nil {
g.log.Error("RPC call to GetChannelByNameForTeamName API failed.", mlog.Err(err))
}
return _returns.A, _returns.B
}
func (s *apiRPCServer) GetChannelByNameForTeamName(args *Z_GetChannelByNameForTeamNameArgs, returns *Z_GetChannelByNameForTeamNameReturns) error {
if hook, ok := s.impl.(interface {
GetChannelByNameForTeamName(teamName, channelName string) (*model.Channel, *model.AppError)
}); ok {
returns.A, returns.B = hook.GetChannelByNameForTeamName(args.A, args.B)
} else {
return fmt.Errorf("API GetChannelByNameForTeamName called but not implemented.")
}
return nil
}
type Z_GetDirectChannelArgs struct {
A string
B string

View File

@@ -1,4 +1,4 @@
// Code generated by mockery v1.0.0
// Code generated by mockery v1.0.0. DO NOT EDIT.
// Regenerate this file using `make plugin-mocks`.
@@ -308,13 +308,13 @@ func (_m *API) GetChannel(channelId string) (*model.Channel, *model.AppError) {
return r0, r1
}
// GetChannelByName provides a mock function with given fields: name, teamId
func (_m *API) GetChannelByName(name string, teamId string) (*model.Channel, *model.AppError) {
ret := _m.Called(name, teamId)
// GetChannelByName provides a mock function with given fields: teamId, name
func (_m *API) GetChannelByName(teamId string, name string) (*model.Channel, *model.AppError) {
ret := _m.Called(teamId, name)
var r0 *model.Channel
if rf, ok := ret.Get(0).(func(string, string) *model.Channel); ok {
r0 = rf(name, teamId)
r0 = rf(teamId, name)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.Channel)
@@ -323,7 +323,32 @@ func (_m *API) GetChannelByName(name string, teamId string) (*model.Channel, *mo
var r1 *model.AppError
if rf, ok := ret.Get(1).(func(string, string) *model.AppError); ok {
r1 = rf(name, teamId)
r1 = rf(teamId, name)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
}
// GetChannelByNameForTeamName provides a mock function with given fields: teamName, channelName
func (_m *API) GetChannelByNameForTeamName(teamName string, channelName string) (*model.Channel, *model.AppError) {
ret := _m.Called(teamName, channelName)
var r0 *model.Channel
if rf, ok := ret.Get(0).(func(string, string) *model.Channel); ok {
r0 = rf(teamName, channelName)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.Channel)
}
}
var r1 *model.AppError
if rf, ok := ret.Get(1).(func(string, string) *model.AppError); ok {
r1 = rf(teamName, channelName)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
@@ -1067,13 +1092,13 @@ func (_m *API) UpdateUser(user *model.User) (*model.User, *model.AppError) {
return r0, r1
}
// UpdateUserStatus provides a mock function with given fields: status, userId
func (_m *API) UpdateUserStatus(status string, userId string) (*model.Status, *model.AppError) {
ret := _m.Called(status, userId)
// UpdateUserStatus provides a mock function with given fields: userId, status
func (_m *API) UpdateUserStatus(userId string, status string) (*model.Status, *model.AppError) {
ret := _m.Called(userId, status)
var r0 *model.Status
if rf, ok := ret.Get(0).(func(string, string) *model.Status); ok {
r0 = rf(status, userId)
r0 = rf(userId, status)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.Status)
@@ -1082,7 +1107,7 @@ func (_m *API) UpdateUserStatus(status string, userId string) (*model.Status, *m
var r1 *model.AppError
if rf, ok := ret.Get(1).(func(string, string) *model.AppError); ok {
r1 = rf(status, userId)
r1 = rf(userId, status)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)

View File

@@ -1,4 +1,4 @@
// Code generated by mockery v1.0.0
// Code generated by mockery v1.0.0. DO NOT EDIT.
// Regenerate this file using `make plugin-mocks`.