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')