basically operating chain code
[scpubgit/Clifton.git] / lib / App / Clifton / Chain.pm
index 400ee9b..3641613 100644 (file)
@@ -2,7 +2,28 @@ package App::Clifton::Chain;
 
 use Moo;
 
+extends 'App::Clifton::Component';
+
 has jabber_user => (is => 'ro', required => 1);
 has irc_channel => (is => 'ro', required => 1);
 
+has jabber_tower => (is => 'ro', required => 1);
+has irc_tower => (is => 'ro', required => 1, weak_ref => 1);
+
+sub handle_xmpp_message {
+  my ($self, $msg) = @_;
+  $self->irc_tower->send_irc_message({
+    to => $self->irc_channel,
+    text => $msg->body
+  });
+}
+
+sub handle_irc_message {
+  my ($self, $message, $hints) = @_;
+  $self->jabber_tower->send_xmpp_message({
+    to => $self->jabber_user,
+    body => join(': ', $hints->{prefix_name}, $hints->{text})
+  });
+}
+
 1;