mirror of
https://github.com/Fishwaldo/huginn.git
synced 2025-03-15 19:31:26 +00:00
Update with feedback
This commit is contained in:
parent
8370c87db1
commit
9ac1a8c558
2 changed files with 7 additions and 9 deletions
7
app/models/agents/webhook_agent.rb
Normal file → Executable file
7
app/models/agents/webhook_agent.rb
Normal file → Executable file
|
@ -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
|
||||
|
|
9
spec/models/agents/webhook_agent_spec.rb
Normal file → Executable file
9
spec/models/agents/webhook_agent_spec.rb
Normal file → Executable file
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue