Implement a few channel member endpoints for APIv4 (#5304)
* Implement GET /channels/{channel_id}/members
* Implement GET /channels/{channel_id}/members/{user_id} endpoint for APIv4
* Implement /users/{user_id}/teams/{team_id}/channels/members endpoint for APIv4
* Fix unit test
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
487bb56a9b
Коммит
5462f0119e
@@ -751,18 +751,18 @@ func (s SqlChannelStore) UpdateMember(member *model.ChannelMember) StoreChannel
|
||||
return storeChannel
|
||||
}
|
||||
|
||||
func (s SqlChannelStore) GetMembers(channelId string) StoreChannel {
|
||||
func (s SqlChannelStore) GetMembers(channelId string, offset, limit int) StoreChannel {
|
||||
storeChannel := make(StoreChannel, 1)
|
||||
|
||||
go func() {
|
||||
result := StoreResult{}
|
||||
|
||||
var members []model.ChannelMember
|
||||
_, err := s.GetReplica().Select(&members, "SELECT * FROM ChannelMembers WHERE ChannelId = :ChannelId", map[string]interface{}{"ChannelId": channelId})
|
||||
var members model.ChannelMembers
|
||||
_, err := s.GetReplica().Select(&members, "SELECT * FROM ChannelMembers WHERE ChannelId = :ChannelId LIMIT :Limit OFFSET :Offset", map[string]interface{}{"ChannelId": channelId, "Limit": limit, "Offset": offset})
|
||||
if err != nil {
|
||||
result.Err = model.NewLocAppError("SqlChannelStore.GetMembers", "store.sql_channel.get_members.app_error", nil, "channel_id="+channelId+err.Error())
|
||||
} else {
|
||||
result.Data = members
|
||||
result.Data = &members
|
||||
}
|
||||
|
||||
storeChannel <- result
|
||||
@@ -782,7 +782,7 @@ func (s SqlChannelStore) GetMember(channelId string, userId string) StoreChannel
|
||||
|
||||
if err := s.GetReplica().SelectOne(&member, "SELECT * FROM ChannelMembers WHERE ChannelId = :ChannelId AND UserId = :UserId", map[string]interface{}{"ChannelId": channelId, "UserId": userId}); err != nil {
|
||||
if err == sql.ErrNoRows {
|
||||
result.Err = model.NewLocAppError("SqlChannelStore.GetMember", MISSING_CHANNEL_MEMBER_ERROR, nil, "channel_id="+channelId+"user_id="+userId+","+err.Error())
|
||||
result.Err = model.NewAppError("SqlChannelStore.GetMember", MISSING_CHANNEL_MEMBER_ERROR, nil, "channel_id="+channelId+"user_id="+userId+","+err.Error(), http.StatusNotFound)
|
||||
} else {
|
||||
result.Err = model.NewLocAppError("SqlChannelStore.GetMember", "store.sql_channel.get_member.app_error", nil, "channel_id="+channelId+"user_id="+userId+","+err.Error())
|
||||
}
|
||||
|
||||
@@ -79,8 +79,8 @@ func TestChannelStoreSaveDirectChannel(t *testing.T) {
|
||||
t.Fatal("couldn't save direct channel", err)
|
||||
}
|
||||
|
||||
members := (<-store.Channel().GetMembers(o1.Id)).Data.([]model.ChannelMember)
|
||||
if len(members) != 2 {
|
||||
members := (<-store.Channel().GetMembers(o1.Id, 0, 100)).Data.(*model.ChannelMembers)
|
||||
if len(*members) != 2 {
|
||||
t.Fatal("should have saved 2 members")
|
||||
}
|
||||
|
||||
@@ -135,8 +135,8 @@ func TestChannelStoreCreateDirectChannel(t *testing.T) {
|
||||
|
||||
c1 := res.Data.(*model.Channel)
|
||||
|
||||
members := (<-store.Channel().GetMembers(c1.Id)).Data.([]model.ChannelMember)
|
||||
if len(members) != 2 {
|
||||
members := (<-store.Channel().GetMembers(c1.Id, 0, 100)).Data.(*model.ChannelMembers)
|
||||
if len(*members) != 2 {
|
||||
t.Fatal("should have saved 2 members")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ type ChannelStore interface {
|
||||
GetForPost(postId string) StoreChannel
|
||||
SaveMember(member *model.ChannelMember) StoreChannel
|
||||
UpdateMember(member *model.ChannelMember) StoreChannel
|
||||
GetMembers(channelId string) StoreChannel
|
||||
GetMembers(channelId string, offset, limit int) StoreChannel
|
||||
GetMember(channelId string, userId string) StoreChannel
|
||||
GetAllChannelMembersForUser(userId string, allowFromCache bool) StoreChannel
|
||||
InvalidateAllChannelMembersForUser(userId string)
|
||||
|
||||
Ссылка в новой задаче
Block a user