Cpi Event Connector

A library that allows applications to easily send events to CPI.

Usage

Configure the Event Connector like so:

require 'cpi_event_connector'
require 'yaml'

config_file = File.join(Rails.root, "config", "cpi_event_connector.yml")
params = {:enabled => false}
if File.exists?(config_file)
  params.merge! YAML::load_file(config_file).symbolize_keys!
end
Cpi::EventConnector.configure(params)

With a YAML file that looks like this:

# RabbitMQ connection settings
# When connecting to an unsecured localhost, you actually don't need any of these
host: localhost
port: 5672
user: guest
password: guest

# Cpi Event Connector settings
enabled: false
queue: 'net.nulogy.cpi.events.development'

And then send events like so:

event = Cpi::Event.new(
  event_uid: 'unique_id', 
  event_type: 'type', 
  source_tenant_uid: 'tenant_uid', 
  content: 'some content')
Cpi::EventConnector.send_event(event, :queue => 'system_queue_name')

Note that the queue parameter is optional if it was specified in the YAML config.

Or with raw xml like so:

xml = <<-XML
<cpi_event>
  <header>
    <event_uid>unique_id</event_uid>
    <event_type>type</event_type>
    <source_tenant_uid>tenant_uid</source_tenant_uid>
  </header>
  <content>some content</content>
</cpi_event>
XML
Cpi::EventConnector.send_event_xml(xml, :queue => 'system_queue_name')