Google-Checkout

 view release on metacpan or  search on metacpan

lib/Google/Checkout/General/MerchantItem.pm  view on Meta::CPAN

  my ($class, %args) = @_;

  #--
  #-- The followings are required so raise error if any of them are missing
  #--
  return Google::Checkout::General::Error->new(
    @{$Google::Checkout::General::Error::ERRORS{MISSING_ITEM_NAME}})        
      unless defined $args{name};

  return Google::Checkout::General::Error->new(
    @{$Google::Checkout::General::Error::ERRORS{MISSING_ITEM_DESCRIPTION}}) 
      unless defined $args{description};

  return Google::Checkout::General::Error->new(
    @{$Google::Checkout::General::Error::ERRORS{MISSING_ITEM_PRICE}})       
      unless defined $args{price};

  return Google::Checkout::General::Error->new(
    @{$Google::Checkout::General::Error::ERRORS{MISSING_ITEM_QUANTITY}})    
      unless defined $args{quantity};

  my $self = {name        => $args{name},
              description => $args{description},
              price       => $args{price},
              quantity    => $args{quantity} };

  #--
  #-- The followings are optional
  #--

  if (defined $args{private})
  {
    if (ref $args{private})
    {
      for my $note (grep $_ ne '', $args{private})
      {
        push(@{$self->{private}}, $note);
      }
    }
    else
    {
      if ($args{private} ne '') {
        push(@{$self->{private}}, $args{private});
      } else {
        $self->{private} = [];
      }
    }
  } else {
    $self->{private} = [];
  }

  $self->{tax_table_selector} = $args{tax_table_selector}
    if $args{tax_table_selector};

  #--
  #-- add merchant item id if there is one
  #--
  $self->{merchant_item_id} = $args{merchant_item_id}
    if $args{merchant_item_id};

  return bless $self => $class;
}

sub get_name        
{ 
  my ($self) = @_;

  return $self->{name}; 
}

sub get_description 
{ 
  my ($self) = @_;

  return $self->{description}; 
}

sub get_price       
{ 
  my ($self) = @_;

  return $self->{price}; 
}

sub get_quantity    
{ 
  my ($self) = @_;

  return $self->{quantity};
}

sub set_name        
{ 
  my ($self, $data) = @_;

  $self->{name} = $data if defined $data;
}

sub set_description 
{ 
  my ($self, $data) = @_;

  $data->{description} = $data if defined $data; 
}

sub set_price       
{ 
  my ($self, $data) = @_;

  $self->{price} = $data if defined $self;
}

sub set_quantity    
{ 
  my ($self, $data) = @_;

  $self->{quantity} = $data if defined $data;
}

#--
#-- The followings are optional

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 0.678 second using v1.00-cache-2.02-grep-82fe00e-cpan-f5108d614456 )