From 57cd7b64730e084247304376ae58807115741323 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Tue, 26 Feb 2008 23:14:48 +0000 Subject: [PATCH] updated to use exceptions rather than croak --- lib/WebGUI/Shop/Cart.pm | 22 ++++++++++++++++------ lib/WebGUI/Shop/CartItem.pm | 2 +- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/lib/WebGUI/Shop/Cart.pm b/lib/WebGUI/Shop/Cart.pm index eb9a705a5..3db0fef57 100644 --- a/lib/WebGUI/Shop/Cart.pm +++ b/lib/WebGUI/Shop/Cart.pm @@ -3,7 +3,7 @@ package WebGUI::Shop::Cart; use strict; use Class::InsideOut qw{ :std }; -use Carp qw(croak); +use WebGUI::Exception::Shop; use WebGUI::Shop::CartItem; =head1 NAME @@ -43,7 +43,9 @@ A reference to a subclass of WebGUI::Asset::Sku. sub addItem { my ($self, $sku) = @_; - croak "Need a SKU item." unless (defined $sku && $sku->isa("WebGUI::Asset::Sku")); + unless (defined $sku && $sku->isa("WebGUI::Asset::Sku")) { + WebGUI::Error::InvalidObject->throw(expected=>"WebGUI::Asset::Sku", got=>(ref $sku), error=>"Need a SKU item."); + } my $item = WebGUI::Shop::CartItem->create( $self, $sku); return $item; } @@ -62,7 +64,9 @@ A reference to the current session. sub create { my ($class, $session) = @_; - croak "Need a session." unless (defined $session && $session->isa("WebGUI::Session")); + unless (defined $session && $session->isa("WebGUI::Session")) { + WebGUI::Error::InvalidObject->throw(expected=>"WebGUI::Session", got=>(ref $session), error=>"Need a session."); + } my $cartId = $session->db->quickScalar("select cartId from cart where sessionId=?",[$session->getId]); return $class->new($session, $cartId) if (defined $cartId); my $cartId = $session->id->generate; @@ -171,10 +175,16 @@ The unique id of a cart to instanciate. sub new { my ($class, $session, $cartId) = @_; - croak "Need a session" unless (defined $session && $session->isa("WebGUI::Session")); - croak "Need a cartId" unless defined $cartId; + unless (defined $session && $session->isa("WebGUI::Session")) { + WebGUI::Error::InvalidObject->throw(expected=>"WebGUI::Session", got=>(ref $session), error=>"Need a session."); + } + unless (defined $cartId) { + WebGUI::Error::InvalidParam->throw(error=>"Need a cartId."); + } my $cart = $session->db->quickHashRef('select * from cart where cartId=?', [$cartId]); - croak "No cart with id of $cartId" if ($cart->{cartId} eq ""); + if ($cart->{cartId} eq "") { + WebGUI::Error::ObjectNotFound->throw(error=>"No such cart.", id=>$cartId); + } my $self = register $class; my $id = id $self; $session{ $id } = $session; diff --git a/lib/WebGUI/Shop/CartItem.pm b/lib/WebGUI/Shop/CartItem.pm index 0188f05b9..5d142d289 100644 --- a/lib/WebGUI/Shop/CartItem.pm +++ b/lib/WebGUI/Shop/CartItem.pm @@ -178,7 +178,7 @@ sub new { WebGUI::Error::InvalidObject->throw(expected=>"WebGUI::Shop::Cart", got=>(ref $cart), error=>"Need a cart."); } unless (defined $itemId) { - WebGUI::Error::InvalidObject->throw(error=>"Need an itemId."); + WebGUI::Error::InvalidParam->throw(error=>"Need an itemId."); } my $item = $cart->session->db->quickHashRef('select * from cartItems where itemId=?', [$itemId]); if ($item->{itemId} eq "") {