Module: Legion::API::Routes::Webhooks

Defined in:
lib/legion/api/webhooks.rb

Class Method Summary collapse

Class Method Details

.registered(app) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/legion/api/webhooks.rb', line 7

def self.registered(app)
  app.get '/api/webhooks' do
    json_response(Legion::Webhooks.list)
  end

  app.post '/api/webhooks' do
    Legion::Logging.debug "API: POST /api/webhooks params=#{params.keys}"
    body = parse_request_body
    result = Legion::Webhooks.register(
      url: body[:url], secret: body[:secret],
      event_types: body[:event_types] || ['*'],
      max_retries: body[:max_retries] || 5
    )
    Legion::Logging.info "API: registered webhook for url=#{body[:url]} events=#{(body[:event_types] || ['*']).join(',')}"
    json_response(result, status_code: 201)
  end

  app.delete '/api/webhooks/:id' do
    result = Legion::Webhooks.unregister(id: params[:id].to_i)
    Legion::Logging.info "API: deleted webhook #{params[:id]}"
    json_response(result)
  end
end