Commit 1463df21 authored by Hanzei's avatar Hanzei Committed by Joram Wilander

Add ChannelId and TeamId to PostActionIntegrationRequest (#9384)

* Add ChannelId and TeamId to PostActionIntegrationRequest

* Add tests
parent 0204c45b
......@@ -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"`
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment