caching for verifyAllPrerequisites

This commit is contained in:
Matthew Wilson 2006-04-21 15:26:33 +00:00
parent e6ad1d8952
commit bd62aabfc5

View file

@ -19,6 +19,7 @@ use base 'WebGUI::Asset::Wobject';
use Tie::IxHash; use Tie::IxHash;
use WebGUI::HTMLForm; use WebGUI::HTMLForm;
use JSON; use JSON;
use WebGUI::Cache;
use WebGUI::International; use WebGUI::International;
use WebGUI::Commerce::ShoppingCart; use WebGUI::Commerce::ShoppingCart;
use WebGUI::Commerce::Item; use WebGUI::Commerce::Item;
@ -1150,6 +1151,12 @@ sub resolveConflictForm {
sub verifyAllPrerequisites { sub verifyAllPrerequisites {
my $self = shift; my $self = shift;
my $returnArrayFlag = shift; my $returnArrayFlag = shift;
my $cache;
if ($returnArrayFlag) {
$cache = WebGUI::Cache->new($session,["verifyAllPrerequisites",$returnArrayFlag]);
my $eventData = $cache->get;
return $eventData->{$returnArrayFlag} if defined $eventData->{$returnArrayFlag};
}
#use Data::Dumper; #use Data::Dumper;
#start with the events in the scratch cart. See if all prerequisites are met #start with the events in the scratch cart. See if all prerequisites are met
my $startingEvents = {}; my $startingEvents = {};
@ -1178,8 +1185,11 @@ sub verifyAllPrerequisites {
} }
my $rowsLoop = []; my $rowsLoop = [];
my @silliness = keys %$lastResults; if ($returnArrayFlag) {
return \@silliness if $returnArrayFlag; my @silliness = keys %$lastResults;
$cache->set({$returnArrayFlag=>\@silliness}, 60*60*24*360);
return \@silliness;
}
foreach (keys %$lastResults) { foreach (keys %$lastResults) {
my $details = $lastResults->{$_}; my $details = $lastResults->{$_};
push(@$rowsLoop, { push(@$rowsLoop, {