From 9ac1a8c558226b76fc230a8711687840b55f321a Mon Sep 17 00:00:00 2001 From: Justin Hammond Date: Mon, 17 Dec 2018 15:24:32 +0800 Subject: [PATCH] Update with feedback --- app/models/agents/webhook_agent.rb | 7 +++---- spec/models/agents/webhook_agent_spec.rb | 9 ++++----- 2 files changed, 7 insertions(+), 9 deletions(-) mode change 100644 => 100755 app/models/agents/webhook_agent.rb mode change 100644 => 100755 spec/models/agents/webhook_agent_spec.rb diff --git a/app/models/agents/webhook_agent.rb b/app/models/agents/webhook_agent.rb old mode 100644 new mode 100755 index 937e808c..0a21e82a --- a/app/models/agents/webhook_agent.rb +++ b/app/models/agents/webhook_agent.rb @@ -90,16 +90,15 @@ module Agents JSON.parse(response.body)['success'] or return ["Not Authorized", 401] end - [payload_for(params)].flatten.each do |payload| - if interpolated['header_key'].presence - acceptedheaders = (interpolated['headers']).split(/,/).map { |x| x.strip }.select + if interpolated['header_key'].present? + acceptedheaders = interpolated['headers'].split(/,/).map { |x| x.strip } payload[interpolated['header_key']] = headers.slice(*acceptedheaders) end create_event(payload: payload) end - + if interpolated['response_headers'].presence [interpolated(params)['response'] || 'Event Created', code, "text/plain", interpolated['response_headers'].presence] else diff --git a/spec/models/agents/webhook_agent_spec.rb b/spec/models/agents/webhook_agent_spec.rb old mode 100644 new mode 100755 index 37e90958..91da0fdd --- a/spec/models/agents/webhook_agent_spec.rb +++ b/spec/models/agents/webhook_agent_spec.rb @@ -24,7 +24,7 @@ describe Agents::WebhookAgent do out = agent.receive_web_request(webpayload) }.to change { Event.count }.by(1) expect(out).to eq(['Event Created', 201]) - expect(Event.last.payload).to eq(payload) + expect(Event.last.payload).to eq( {"people"=>[{"name"=>"bob"}, {"name"=>"jon"}], "X-HTTP-HEADERS"=>{"HTTP_ACCEPT"=>"application/xml", "HTTP_X_HELLO_WORLD"=>"Hello Huginn"}}) end it 'should be able to create multiple events when given an array' do @@ -40,7 +40,7 @@ describe Agents::WebhookAgent do out = agent.receive_web_request(webpayload) }.to change { Event.count }.by(2) expect(out).to eq(['Event Created', 201]) - expect(Event.last.payload).to eq({ 'name' => 'jon' }) + expect(Event.last.payload).to eq({"name"=>"jon", "X-HTTP-HEADERS"=>{"HTTP_ACCEPT"=>"application/xml", "HTTP_X_HELLO_WORLD"=>"Hello Huginn"}}) end it 'should not create event if secrets do not match' do @@ -490,9 +490,8 @@ describe Agents::WebhookAgent do out = nil stub_request(:any, /verify/).to_return { |request| - puts gotrequest checked = true - { status: 200, body: '{"success":false}' } + { status: 200, body: '{"success":false}' } } expect { out = agent.receive_web_request(webpayload) @@ -543,7 +542,7 @@ describe Agents::WebhookAgent do out = nil expect { - out= agent.receive_web_request(webpayload) + out = agent.receive_web_request(webpayload) }.to change { Event.count }.by(1) expect(out).to eq(['Event Created', 201]) expect(Event.last.payload).to eq(payload)