From 0d0a2471cf3f358c5e677cf38ba1c106094cc14e Mon Sep 17 00:00:00 2001 From: Rodrigo Pavano Date: Thu, 13 Jul 2017 18:57:26 -0300 Subject: [PATCH] Forwarding tracking params on call events --- app/controllers/api/calls_controller.rb | 5 ++--- app/javascript/call_tool/CallToolView.js | 2 ++ app/javascript/util/ChampaignAPI.js | 7 ++++++- app/services/call_event.rb | 4 +++- app/views/plugins/call_tools/_call_tool.liquid | 3 +++ 5 files changed, 16 insertions(+), 5 deletions(-) diff --git a/app/controllers/api/calls_controller.rb b/app/controllers/api/calls_controller.rb index a1a7535b1..de53ef9c0 100644 --- a/app/controllers/api/calls_controller.rb +++ b/app/controllers/api/calls_controller.rb @@ -24,8 +24,7 @@ def call_params end def tracking_params - params - .slice('source', 'akid', 'referring_akid', 'referrer_id', 'rid', 'bucket') - .to_unsafe_hash + params.fetch(:tracking_params, {}) + .permit(:source, :akid, :referring_akid, :referrer_id, :rid, :bucket) end end diff --git a/app/javascript/call_tool/CallToolView.js b/app/javascript/call_tool/CallToolView.js index 38b85e81a..a79ebf72e 100644 --- a/app/javascript/call_tool/CallToolView.js +++ b/app/javascript/call_tool/CallToolView.js @@ -65,6 +65,7 @@ type OwnProps = { targetTitle?: string, checksum?: string, intl: IntlShape, + trackingParams: any, }; class CallToolView extends Component { @@ -218,6 +219,7 @@ class CallToolView extends Component { memberPhoneNumber: this.state.form.memberPhoneCountryCode + this.state.form.memberPhoneNumber, + trackingParams: this.props.trackingParams, }) .then(this.submitSuccessful.bind(this), this.submitFailed.bind(this)); } diff --git a/app/javascript/util/ChampaignAPI.js b/app/javascript/util/ChampaignAPI.js index 452ebb55c..9bc3c572e 100644 --- a/app/javascript/util/ChampaignAPI.js +++ b/app/javascript/util/ChampaignAPI.js @@ -43,6 +43,7 @@ type CreateCallParams = { pageId: string | number, memberPhoneNumber?: string, targetId: string, + trackingParams: any, }; const createCall = function( params: CreateCallParams @@ -57,7 +58,11 @@ const createCall = function( if (!!params.targetName) inner.target_name = params.targetName; if (!!params.checksum) inner.checksum = params.checksum; if (!!params.targetId) inner.target_id = params.targetId; - const payload = { call: inner }; + + const payload = { + call: inner, + tracking_params: params.trackingParams, + }; return new Promise((resolve, reject) => { $.post(`/api/pages/${params.pageId}/call`, payload) diff --git a/app/services/call_event.rb b/app/services/call_event.rb index 25994914b..ecd9da018 100644 --- a/app/services/call_event.rb +++ b/app/services/call_event.rb @@ -29,7 +29,9 @@ def payload call_id: @call.id, action_id: @call.action.id } - } + }.tap do |p| + p[:params].merge!(@extra_params) + end end end diff --git a/app/views/plugins/call_tools/_call_tool.liquid b/app/views/plugins/call_tools/_call_tool.liquid index bbaaee2de..90130a398 100644 --- a/app/views/plugins/call_tools/_call_tool.liquid +++ b/app/views/plugins/call_tools/_call_tool.liquid @@ -4,6 +4,9 @@