summaryrefslogtreecommitdiff
path: root/app/models
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2015-02-09 20:25:22 -0700
committermo khan <mo@mokhan.ca>2015-02-09 20:25:22 -0700
commit34f53efff788b7558f63d973aad1f3475c27c125 (patch)
treef867a5243b5b1ef15ed16952abc3a43f91226ded /app/models
parent64dd29d70ddda6f4927e9352e3e90c4f87b5041a (diff)
extract message objects to publish.
Diffstat (limited to 'app/models')
-rw-r--r--app/models/event_message.rb25
-rw-r--r--app/models/poke_message.rb23
2 files changed, 48 insertions, 0 deletions
diff --git a/app/models/event_message.rb b/app/models/event_message.rb
new file mode 100644
index 0000000..0a0c9ae
--- /dev/null
+++ b/app/models/event_message.rb
@@ -0,0 +1,25 @@
+class EventMessage
+ attr_reader :agent_id, :event_type, :data
+
+ def initialize(agent_id:, event_type:, data: {})
+ @agent_id = agent_id
+ @event_type = event_type
+ @data = data
+ end
+
+ def routing_key
+ "events.#{event_type}.#{agent_id}"
+ end
+
+ def to_hash
+ {
+ agent_id: agent_id,
+ event_type: event_type,
+ data: data
+ }
+ end
+
+ def to_json
+ to_hash.to_json
+ end
+end
diff --git a/app/models/poke_message.rb b/app/models/poke_message.rb
new file mode 100644
index 0000000..b134ba9
--- /dev/null
+++ b/app/models/poke_message.rb
@@ -0,0 +1,23 @@
+class PokeMessage
+ attr_reader :fingerprint, :state
+
+ def initialize(fingerprint:, state: )
+ @fingerprint = fingerprint
+ @state = state
+ end
+
+ def routing_key
+ "commands.poke.#{fingerprint}"
+ end
+
+ def to_hash
+ {
+ fingerprint: fingerprint,
+ state: state
+ }
+ end
+
+ def to_json
+ to_hash.to_json
+ end
+end