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 = "<cpi_event>\n  <header>\n    <event_uid>unique_id</event_uid>\n    <event_type>type</event_type>\n    <source_tenant_uid>tenant_uid</source_tenant_uid>\n  </header>\n  <content>some content</content>\n</cpi_event>\n"
Cpi::EventConnector.send_event_xml(xml, :queue => 'system_queue_name')