| @@ -23,6 +23,7 @@ module Agents | ||
| 23 | 23 | * `verbs` - Comma-separated list of http verbs your agent will accept. | 
| 24 | 24 | For example, "post,get" will enable POST and GET requests. Defaults | 
| 25 | 25 | to "post". | 
| 26 | + * `response` - The response message to the request. Defaults to 'Event Created'. | |
| 26 | 27 | MD | 
| 27 | 28 | end | 
| 28 | 29 |  | 
| @@ -36,7 +37,8 @@ module Agents | ||
| 36 | 37 | def default_options | 
| 37 | 38 |        { "secret" => "supersecretstring", | 
| 38 | 39 | "expected_receive_period_in_days" => 1, | 
| 39 | - "payload_path" => "some_key" | |
| 40 | + "payload_path" => "some_key", | |
| 41 | + "response" => "Event Created" | |
| 40 | 42 | } | 
| 41 | 43 | end | 
| 42 | 44 |  | 
| @@ -53,7 +55,7 @@ module Agents | ||
| 53 | 55 | create_event(payload: payload) | 
| 54 | 56 | end | 
| 55 | 57 |  | 
| 56 | - ['Event Created', 201] | |
| 58 | + [response_message, 201] | |
| 57 | 59 | end | 
| 58 | 60 |  | 
| 59 | 61 | def working? | 
| @@ -69,5 +71,9 @@ module Agents | ||
| 69 | 71 | def payload_for(params) | 
| 70 | 72 |        Utils.value_at(params, interpolated['payload_path']) || {} | 
| 71 | 73 | end | 
| 74 | + | |
| 75 | + def response_message | |
| 76 | + interpolated['response'] || 'Event Created' | |
| 77 | + end | |
| 72 | 78 | end | 
| 73 | 79 | end | 
| @@ -38,6 +38,20 @@ describe Agents::WebhookAgent do | ||
| 38 | 38 | expect(out).to eq(['Not Authorized', 401]) | 
| 39 | 39 | end | 
| 40 | 40 |  | 
| 41 | + it 'should respond with customized response message if configured with `response` option' do | |
| 42 | + out = nil | |
| 43 | + agent.options['response'] = 'That Worked' | |
| 44 | +      out = agent.receive_web_request({ 'secret' => 'foobar', 'some_key' => payload }, "post", "text/html") | |
| 45 | + expect(out).to eq(['That Worked', 201]) | |
| 46 | + end | |
| 47 | + | |
| 48 | + it 'should respond with `Event Created` if response option is nil' do | |
| 49 | + out = nil | |
| 50 | + agent.options['response'] = nil | |
| 51 | +      out = agent.receive_web_request({ 'secret' => 'foobar', 'some_key' => payload }, "post", "text/html") | |
| 52 | + expect(out).to eq(['Event Created', 201]) | |
| 53 | + end | |
| 54 | + | |
| 41 | 55 | describe "receiving events" do | 
| 42 | 56 |  | 
| 43 | 57 | context "default settings" do |