Add ChannelId and TeamId to PostActionIntegrationRequest (#9384)
* Add ChannelId and TeamId to PostActionIntegrationRequest * Add tests
Этот коммит содержится в:
коммит произвёл
Joram Wilander
родитель
0204c45b7a
Коммит
1463df21a5
18
app/post.go
18
app/post.go
@@ -840,16 +840,26 @@ func (a *App) DoPostAction(postId, actionId, userId, selectedOption string) *mod
|
||||
post = result.Data.(*model.Post)
|
||||
}
|
||||
|
||||
cchan := a.Srv.Store.Channel().GetForPost(postId)
|
||||
var channel *model.Channel
|
||||
if result := <-cchan; result.Err != nil {
|
||||
return result.Err
|
||||
} else {
|
||||
channel = result.Data.(*model.Channel)
|
||||
}
|
||||
|
||||
action := post.GetAction(actionId)
|
||||
if action == nil || action.Integration == nil {
|
||||
return model.NewAppError("DoPostAction", "api.post.do_action.action_id.app_error", nil, fmt.Sprintf("action=%v", action), http.StatusNotFound)
|
||||
}
|
||||
|
||||
request := &model.PostActionIntegrationRequest{
|
||||
UserId: userId,
|
||||
PostId: postId,
|
||||
Type: action.Type,
|
||||
Context: action.Integration.Context,
|
||||
UserId: userId,
|
||||
ChannelId: post.ChannelId,
|
||||
TeamId: channel.TeamId,
|
||||
PostId: postId,
|
||||
Type: action.Type,
|
||||
Context: action.Integration.Context,
|
||||
}
|
||||
|
||||
if action.Type == model.POST_ACTION_TYPE_SELECT {
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
@@ -130,10 +129,12 @@ func TestPostAction(t *testing.T) {
|
||||
})
|
||||
|
||||
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
var request model.PostActionIntegrationRequest
|
||||
err := json.NewDecoder(r.Body).Decode(&request)
|
||||
assert.NoError(t, err)
|
||||
request := model.PostActionIntegrationRequesteFromJson(r.Body)
|
||||
assert.NotNil(t, request)
|
||||
|
||||
assert.Equal(t, request.UserId, th.BasicUser.Id)
|
||||
assert.Equal(t, request.ChannelId, th.BasicChannel.Id)
|
||||
assert.Equal(t, request.TeamId, th.BasicTeam.Id)
|
||||
if request.Type == model.POST_ACTION_TYPE_SELECT {
|
||||
assert.Equal(t, request.DataSource, "some_source")
|
||||
assert.Equal(t, request.Context["selected_option"], "selected")
|
||||
|
||||
@@ -154,6 +154,8 @@ type PostActionIntegration struct {
|
||||
|
||||
type PostActionIntegrationRequest struct {
|
||||
UserId string `json:"user_id"`
|
||||
ChannelId string `json:"channel_id"`
|
||||
TeamId string `json:"team_id"`
|
||||
PostId string `json:"post_id"`
|
||||
Type string `json:"type"`
|
||||
DataSource string `json:"data_source"`
|
||||
|
||||
Ссылка в новой задаче
Block a user