NAME
   Net::Joker::DMAPI - interface to Joker's Domain Management API

DESCRIPTION
   An attempt at a sane wrapper around Joker's DMAPI (domain management
   API).

   Automatically logs in, and parses responses into something a bit more
   usable as much as possible.

SYNOPSIS
       my $dmapi = Net::Joker::DMAPI->new(
           username => '[email protected]',
           password => 'hunter2',
       );

       # Get whois details for a domain - returns parsed data structure
       my $whois_details = $dmapi->query_whois({ domain => $domain });
       my @nameservers = @{ $whos_details->{domain}{nameservers} };

       # can also use query_whois on contact handles
       my $admin_handle_details = $dmapi->query_whois(
           { contact => $whois_details->{domain}{admin_c} }
       );

       my $current_balance = $dmapi->current_balance;

       my $tlds = $dmapi->available_tlds;

ATTRIBUTES
   username
       Your Joker account username.

   password
       Your Joker account password

   debug
       Whether to omit debug messages; disabled by default, set to a true
       value to enable.

   ua  An LWP::UserAgent object to use. One is constructed by default, so
       you don't need to supply this unless you have a specific need to do
       so.

   dmapi_url
       The URL to Joker's DMAPI. You won't need to provide this unless you
       for some reason need to have requests go elsewhere; it defaults to
       Joker's live DMAPI URL.

   balance
       The current balance of your Joker account; automatically updated
       each time a response from the Joker API is received.

   available_tlds_list
       An arrayref of TLDs which are available to the reseller. Joker
       return this in response to the login call, so this is populated
       after login; it's recommended you access it via the `available_tlds'
       method (see below) though, which will call `login' for you first
       then return the list.

METHODS
   login
       Logs in to the Joker DMAPI, retrieves the `Auth-Sid' from the
       response, and stores it in the `auth_sid' attribute for future
       requests. You won't usually need to call this, as it will happen
       automatically if you use the convenience methods, but if you want to
       poke at `do_request' yourself, you'll need it.

   do_request
       Takes the method name you want to call, and a hashref of arguments,
       calls the method, and returns the response.

       For instance:

         my $response = $dmapi->do_request('query-whois', { domain => $domain });

       The response returned is as given by Joker's (inconsistent) API,
       though; so you'll probably want to look for a suitable method in
       this class which takes care of parsing the response and returning
       something useful. If a method for the DMAPI method you wish to use
       doesn't yet exist, contact me or submit a patch :) In particular,
       some requests don't return the result, just an ID which you'll then
       need to use to poll for the result.

   available_tlds
       Returns the list of TLDs which are available to the reseller to
       sell.

   query_whois
       A convenient method to call the DMAPI `query_whois' method, and
       return the response after parsing it into something useful.

           my $whois = $dmapi->query_whois({ domain => $domain });

       The DMAPI accepts `domain', `contact' or `host', to look up domains,
       contact handles or nameservers respectively.

       The response is parsed into a data structure - for instance, the
       domain's status, which is returned by Joker as `domain.status', will
       be found at `$whois-'{domain}{status}>. Nameservers are collated
       into a hashref. Datetimes returned by Joker are automatically
       inflated to DateTime objects.

   expiry_date
       Returns the expiry date for the given domain.

         my $expires_datetime = $dmapi->expiry_date($domain);

AUTHOR
   David Precious `<[email protected]>'

BUGS / FEATURE REQUESTS
   If you've found a bug, or have a feature request or wish to contribute a
   patch, this module is developed on GitHub - please feel free to raise
   issues or pull requests against the repo at:
   https://github.com/bigpresh/Net-Joker-DMAPI

LICENSE AND COPYRIGHT
   Copyright 2014 David Precious.

   This program is free software; you can redistribute it and/or modify it
   under the terms of either: the GNU General Public License as published
   by the Free Software Foundation; or the Artistic License.

   See http://dev.perl.org/licenses/ for more information.