class WebhookSystem::EventLog

This is the model holding on to all webhook responses

Constants

MAX_JSON_ATTRIBUTE_SIZE

Public Class Methods

construct(subscription, event, request, response) click to toggle source
# File lib/webhook_system/event_log.rb, line 21
def self.construct(subscription, event, request, response)
  request_info = {
    'event' => event,
    'headers' => request.headers.to_hash,
    'body' => request.body.truncate(MAX_JSON_ATTRIBUTE_SIZE),
    'url' => request.path,
  }
  response_info = {
    'headers' => response.headers.to_hash,
    'body' => response.body.truncate(MAX_JSON_ATTRIBUTE_SIZE),
  }

  attributes = {
    event_name: event['event_name'],
    event_id: event['event_id'],
    status: response.status,
    request: request_info,
    response: response_info,
  }
  subscription.event_logs.build(attributes)
end