#! /usr/bin/perl

use 5.010;
use strict;
use warnings;
use if $ENV{DEBUG} => 'Smart::Comments';
use Data::Dumper;
use Pod::Usage;
use WWW::Domain::Registry::Joker;

my %conf = do 'joker.conf';

my $joker = WWW::Domain::Registry::Joker->new(
    username => $conf{username},
    password => $conf{password},
    debug    => $ENV{DEBUG},

    #    dmapi_url => 'https://dmapi.ote.joker.com/request',
);

given (+shift) {
    when ('register') {
        my $domain = +shift // pod2usage;
        my $proc_id = $joker->do_request(
            'domain-register',
            domain      => $domain,
            period      => 12,
            status      => 'production',
            'owner-c'   => 'CODE-1561',
            'billing-c' => 'CODE-1561',
            'admin-c'   => 'CODE-1561',
            'tech-c'    => 'CODE-1561',
            'ns-list'   => 'pu.schlittermann.de:hh.schlittermann.de',
        );
        say "ID: $proc_id"
    }
    when ([qw(status result)]) {
        my $id     = shift // '';
        my %result = $joker->result_list;
        foreach (grep {
	    $id =~ /^\d+$/ ? $_->{procid} == $id : $_->{reqobject} =~ $id 
	} sort { $a->{tstamp} <=> $b->{tstamp} } values %result)
        {
            $_->{tstamp} =~ s/(?<y>\d{4})(?<m>\d\d)(?<d>\d\d)
			      (?<H>\d\d)(?<M>\d\d)(?<S>\d\d)\..*
			     /$+{y}-$+{m}-$+{d} $+{H}:$+{M}:$+{S}/x;
            say "$_->{tstamp} $_->{reqtype} $_->{reqobject} $_->{status} $_->{procid} $_->{svtrid}";
        }

    }
    default {
	pod2usage;
    }
}

__END__

=head1 NAME

 joker - register a domain

=head1 SYNOPSIS

 joker register <domain>
 joker status [<id>|<pattern>]

=head1 DESCRIPTION

This tool registers a domain at joker.


=cut


