package Finance::GDAX::API::URL; our $VERSION = '0.02'; use 5.20.0; use warnings; use Moose; =head1 NAME Finance::GDAX::API::URL - URL assembly for GDAX REST API =head1 SYNOPSIS use Finanace::GDAX::API::URL; my $url = Finance::GDAX::API::URL->new->testing; `wget $url/test_thing`; =head1 DESCRIPTION This class builds URLs for Finance::GDAX::API classes =head1 ATTRIBUTES =head2 C Bool that sets debug mode (will use sandbox). Defaults to true (1). =head2 C The base URI for production requests, including the https:// =head2 C The base URI for testing requests to the GDAX sandbox, including the https:// =cut has 'production' => (is => 'rw', isa => 'Str', default => 'https://api.gdax.com', ); has 'testing' => (is => 'rw', isa => 'Str', default => 'https://api-public.sandbox.gdax.com', ); has 'debug' => (is => 'rw', isa => 'Bool', default => 1, ); has '_sections' => (is => 'rw', isa => 'ArrayRef', default => sub {[]}, ); =head1 METHODS =head2 C Returns a string of the assembled URL =cut sub get { my $self = shift; my $url = join '/', @{$self->_sections}; $url = '/'.$url; if ($self->debug) { return $self->testing.$url; } else { return $self->production.$url; } } =head2 C Adds to the URL, each will be separated with a '/' $url->add('products'); =cut sub add { my ($self, $thing) = @_; $thing =~ s/^\/+//; push @{$self->_sections}, $thing; } __PACKAGE__->meta->make_immutable; 1; =head1 AUTHOR Mark Rushing =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2017 by Home Grown Systems, SPC. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut