Net::Amazon::Validate - Validate user supplied options against known valid


Net-Amazon documentation Contained in the Net-Amazon distribution.

Index


Code Index:

NAME

Top

Net::Amazon::Validate - Validate user supplied options against known valid options.

SYNOPSIS

Top

  use Net::Amazon::Validate;

  # ...

  my $valid = Net::Amazon::Validate::factory(operation => 'ResponseGroup',
                                            );

  $valid->ResponseGroup([qw(Small Request)]);
  $valid->ResponseGroup('Large');

DESCRIPTION

Top

METHODS

Asin()

The item's ASIN number.

Please check the subclasses of Net::Amazon::Validate for specialized methods.

TODO

Top

I should probably add a function to dispatch calls automatically, that way the user doesn't have to explicity call a function to verify an option. It would make it very easy to write loops to validate input.

BUGS

Top

This library was designed to validate ResponseGroup requests only. Support for other parameters were autogenerated but not verified. The biggest problems are with the intrepration of 'Integers 1 to 30', 'A Merchant ID', or 'Amazon (the default value)'.

AUTHOR

Top

Christopher Boumenot, <boumenot@gmail.com>

COPYRIGHT AND LICENSE

Top


Net-Amazon documentation Contained in the Net-Amazon distribution.

######################################################################
package Net::Amazon::Validate::Type;
######################################################################
use warnings;
use strict;

use Data::Dumper;
use Log::Log4perl qw(:easy);

use warnings; 
use strict;

##################################################
sub factory {
##################################################
    my(%options) = @_;

    die "'operation' is a mandatory parameter!\n" unless defined $options{operation};

    #DEBUG(sub {"Validate::Type factory options=" . Data::Dumper::Dumper(\%options) . "\n"});

# NOTE: if you want to validate different versions of the WSDL add this back in.
#     # Transform 2005-10-05 into V2005_10_05 to ensure its a valid module name.
#     my $ver = "V$options{version}";
#     $ver =~ s|-|_|g;
#
#    my $class = 'Net::Amazon::Validate::Type::'.$ver.'::'.$options{operation};

    my $class = 'Net::Amazon::Validate::Type::'.$options{operation};

    eval "require $class";	
    
    my $obj = $class->new();

    return $obj;
}

1;

__END__