#!/usr/bin/env perl

use strict;
use warnings;

use Net::AMQP::RabbitMQ;
use JSON::XS;
use Data::Dumper;

my $host = '127.0.0.1';
my $vhost = "/kanku";
my $user = "kanku";
my $password = "kanku";

my $channel = 1;
my $exchange = "amq.direct";

my $messages= { 
  1 => {
    msg  =>  encode_json(
	{
          type       => 'task_change',
          event      => 'started',
          result     => 'failed',
          job_id     => 1,
          id         => 1,
          message    => 'Just for fun!'
	}
    ),
  },
  2 => {
    msg  =>  encode_json(
	{
          type       => 'daemon_change',
          event      => 'start',
          message    => 'Just for fun!'
	}
    ),
  },
}; 
my $mq = Net::AMQP::RabbitMQ->new();
print "Connecting to host $host with username $user and password $password\n";
$mq->connect($host, { vhost => $vhost, user => $user, password => $password, ssl=>0 });
$mq->channel_open($channel);

while (1) {
  print "Please enter a number to send an event:\n";
  print Dumper($messages);
  my $in = <STDIN>;
  chomp($in);
  if ( $messages->{$in} ) {
    my $data = $messages->{$in};
    print "Publishing message: $data->{msg}\n";
    $mq->publish($channel, 'kanku.notify', $data->{msg}, { exchange => $exchange });
  }
}
$mq->disconnect();
