Module: WebhookHandler

Defined in:
lib/webhook_handler.rb,
lib/webhook_handler/cli.rb,
lib/webhook_handler/version.rb

Defined Under Namespace

Modules: ClassMethods Classes: CLI

Constant Summary collapse

VERSION =
'0.4.0'

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#requestObject (readonly)

Returns the value of attribute request.



6
7
8
# File 'lib/webhook_handler.rb', line 6

def request
  @request
end

#responseObject (readonly)

Returns the value of attribute response.



7
8
9
# File 'lib/webhook_handler.rb', line 7

def response
  @response
end

Class Method Details

.included(klass) ⇒ Object



9
10
11
12
# File 'lib/webhook_handler.rb', line 9

def self.included(klass)
  klass.extend ClassMethods
  klass.send(:include, Sidekiq::Worker)
end

Instance Method Details

#_handle_webhookObject



37
38
39
# File 'lib/webhook_handler.rb', line 37

def _handle_webhook
  response.write(self.class.perform_async)
end

#call(env) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/webhook_handler.rb', line 20

def call(env)
  @request = Rack::Request.new(env)
  @response = Rack::Response.new

  if request.get?
    response.write('Send a POST request to this URL to trigger the webhook')
  elsif request.post?
    if respond_to?(:handle_webhook)
      send(:handle_webhook)
    else
      _handle_webhook
    end
  end

  response.finish
end