Finance-Bitcoin-Yacuna

 view release on metacpan or  search on metacpan

lib/Finance/Bitcoin/Yacuna.pm  view on Meta::CPAN

package Finance::Bitcoin::Yacuna;

#
# $Id: Yacuna.pm 2 2014-07-01 11:07:37Z martchouk $
#
# Yacuna API connector
# author, (c): Andrei Martchouk <andrei at yacuna dot com>
#

use strict;
no strict 'subs';
use warnings;

use WWW::Mechanize;
use HTTP::Request;
use MIME::Base64;
use Digest::SHA qw(sha512_hex);
use Data::Dump qw(dump);

require Exporter;
our @ISA = qw(Exporter);
our $VERSION = "0.1";

my $conf = {
	prod => {
		host => 'https://yacuna.com',
		basePath => '/api/',
		apiVersion => '1'
	},
	sandbox => {
		host => 'https://sandbox.yacuna.com',
		basePath => '/api/',
		apiVersion => '1'
	},
    debug => 0
};


sub new{
	my $type = shift;
	my %params = @_;
	my $httpClient = new WWW::Mechanize;
	if($params{'skipSSL'} && (int$params{'skipSSL'})>0){
		$httpClient->{'ssl_opts'} = {
			SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE,
			verify_hostname => 0, # this key is likely going to be removed in future LWP >6.04
		};
	} 

	my $config = {};

	$config = $params{'sandbox'} && (int$params{'sandbox'})>0 ? $conf->{'sandbox'} : $conf->{'prod'};

	$config->{debug} = $params{'debug'} && (int$params{'debug'})>0 ? $params{'debug'} : 0;

	bless{
		'uri' => $config->{'host'}, 
		'basePath' => $config->{'basePath'}, 
		'apiVersion' => $params{'apiVersion'} || $config->{'apiVersion'},
		'tokenId' => $params{'tokenId'}, 
		'secret'=> $params{'secret'}, 
		'SKIP_SSL'=>$params{'skipSSL'},
		'httpClient'=> $httpClient,
		'debug' => $config->{debug}
	}, 
	$type;
}

sub uri {
	return $_[0]->{'uri'} unless $_[1];
	$_[0]->{'uri'} = $_[1]
}

sub basePath {
	return $_[0]->{'basePath'} unless $_[1];
	$_[0]->{'basePath'} = $_[1]
}

sub apiVersion {
	return $_[0]->{'apiVersion'} unless $_[1];
	$_[0]->{'apiVersion'} = $_[1]
}

sub tokenId {
	return $_[0]->{'tokenId'} unless $_[1];
	$_[0]->{'tokenId'} = $_[1]
}

sub secret {
	return $_[0]->{'secret'} unless $_[1];
	$_[0]->{'secret'} = $_[1]
}

sub debug {
	return $_[0]->{'debug'} unless $_[1];
	$_[0]->{'debug'} = $_[1]
}

sub SKIP_SSL {
	return $_[0]->{'SKIP_SSL'} unless $_[1];
	$_[0]->{'SKIP_SSL'} = $_[1]
}

sub call {
	my $self = shift;



( run in 0.464 second using v1.01-cache-2.11-cpan-13bb782fe5a )