From ecc71d455d6a0bdff21dc06fa338c243c9eba327 Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Wed, 3 Mar 2010 21:07:38 -0800 Subject: [PATCH] Update Shop for new instanciators and for exception handling. --- lib/WebGUI/Shop/AddressBook.pm | 10 ++++++++-- lib/WebGUI/Shop/Cart.pm | 4 ++-- lib/WebGUI/Shop/PayDriver.pm | 2 +- lib/WebGUI/Shop/PayDriver/ITransact.pm | 4 ++-- lib/WebGUI/Shop/TaxDriver/EU.pm | 2 +- lib/WebGUI/Shop/TransactionItem.pm | 4 ++-- 6 files changed, 16 insertions(+), 10 deletions(-) diff --git a/lib/WebGUI/Shop/AddressBook.pm b/lib/WebGUI/Shop/AddressBook.pm index 916381bf7..17393a09d 100644 --- a/lib/WebGUI/Shop/AddressBook.pm +++ b/lib/WebGUI/Shop/AddressBook.pm @@ -464,7 +464,10 @@ sub www_editAddress { defaultValue =>$form->get('email') || $properties->{ email } } ); - my $template = WebGUI::Asset::Template->new( $session, $session->setting->get('shopAddressTemplateId') ); + my $template = eval { WebGUI::Asset::Template->newById( $session, $session->setting->get('shopAddressTemplateId') ); }; + if (Exception::Class->caught()) { + return ''; + } $template->prepare; return $session->style->userStyle( $template->process( $var ) ); @@ -602,7 +605,10 @@ sub www_view { .WebGUI::Form::submit($session, {value=>$i18n->get("add a new address")}) .WebGUI::Form::formFooter($session), ); - my $template = WebGUI::Asset::Template->new($session, $session->setting->get("shopAddressBookTemplateId")); + my $template = eval { WebGUI::Asset::Template->newById($session, $session->setting->get("shopAddressBookTemplateId")); }; + if (Exception::Class->caught()) { + return ''; + } $template->prepare; return $session->style->userStyle($template->process(\%var)); } diff --git a/lib/WebGUI/Shop/Cart.pm b/lib/WebGUI/Shop/Cart.pm index 59f0fbd12..fac6d48d7 100644 --- a/lib/WebGUI/Shop/Cart.pm +++ b/lib/WebGUI/Shop/Cart.pm @@ -769,7 +769,7 @@ sub www_view { ); # render the cart - my $template = WebGUI::Asset::Template->new($session, $session->setting->get("shopCartTemplateId")); + my $template = WebGUI::Asset::Template->newById($session, $session->setting->get("shopCartTemplateId")); return $session->style->userStyle($template->process(\%var)); } @@ -883,7 +883,7 @@ sub www_view { $var{ error } = $error{id $self}; # render the cart - my $template = WebGUI::Asset::Template->new($session, $session->setting->get("shopCartTemplateId")); + my $template = WebGUI::Asset::Template->newById($session, $session->setting->get("shopCartTemplateId")); return $session->style->userStyle($template->process(\%var)); } diff --git a/lib/WebGUI/Shop/PayDriver.pm b/lib/WebGUI/Shop/PayDriver.pm index 21c2942c4..292f082ed 100644 --- a/lib/WebGUI/Shop/PayDriver.pm +++ b/lib/WebGUI/Shop/PayDriver.pm @@ -697,7 +697,7 @@ sub sendNotifications { my $var = $transaction->getTransactionVars; # render - my $template = WebGUI::Asset::Template->new( $session, $self->get("receiptEmailTemplateId") ); + my $template = WebGUI::Asset::Template->newById( $session, $self->get("receiptEmailTemplateId") ); my $inbox = WebGUI::Inbox->new($session); my $receipt = $template->process( $var ); WebGUI::Macro::process($session, \$receipt); diff --git a/lib/WebGUI/Shop/PayDriver/ITransact.pm b/lib/WebGUI/Shop/PayDriver/ITransact.pm index ee7ec478d..1f7306781 100644 --- a/lib/WebGUI/Shop/PayDriver/ITransact.pm +++ b/lib/WebGUI/Shop/PayDriver/ITransact.pm @@ -811,9 +811,9 @@ sub www_getCredentials { value => $i18n->get('checkout button', 'Shop'), }); - my $template = WebGUI::Asset::Template->new($session, $self->get("credentialsTemplateId")); + my $template = eval { WebGUI::Asset::Template->newById($session, $self->get("credentialsTemplateId")); }; my $output; - if (defined $template) { + if (! Exception::Class->caught()) { $template->prepare; $output = $template->process($var); } diff --git a/lib/WebGUI/Shop/TaxDriver/EU.pm b/lib/WebGUI/Shop/TaxDriver/EU.pm index 1bdf2bbdb..cd8c4ca52 100644 --- a/lib/WebGUI/Shop/TaxDriver/EU.pm +++ b/lib/WebGUI/Shop/TaxDriver/EU.pm @@ -665,7 +665,7 @@ sub getUserScreen { $var->{ addVatNumber_form } = $f->print; - my $template = WebGUI::Asset::Template->new( $self->session, $self->get('userTemplateId') ); + my $template = WebGUI::Asset::Template->newById( $self->session, $self->get('userTemplateId') ); return $template->process( $var ); } diff --git a/lib/WebGUI/Shop/TransactionItem.pm b/lib/WebGUI/Shop/TransactionItem.pm index 7aef107de..1d5c56b12 100644 --- a/lib/WebGUI/Shop/TransactionItem.pm +++ b/lib/WebGUI/Shop/TransactionItem.pm @@ -132,8 +132,8 @@ Returns an instanciated WebGUI::Asset::Sku object for this item. sub getSku { my ($self) = @_; - my $asset = WebGUI::Asset->newById($self->transaction->session, $self->get("assetId")); - if (defined $asset) { + my $asset = eval { WebGUI::Asset->newById($self->transaction->session, $self->get("assetId")); }; + if (Exception::Class->caught()) { $asset->applyOptions($self->get("options")); return $asset; }