From 0cc5884b77526c0d0d367f0f08ffec945b4ae7e6 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Thu, 12 Jan 2006 19:27:59 +0000 Subject: [PATCH] converted subscription api --- docs/migration.txt | 5 +++ lib/WebGUI/Commerce/Item/Subscription.pm | 2 +- lib/WebGUI/Operation/Subscription.pm | 8 ++-- lib/WebGUI/Subscription.pm | 50 +++++++++++++++--------- 4 files changed, 42 insertions(+), 23 deletions(-) diff --git a/docs/migration.txt b/docs/migration.txt index d14545dfa..fc8ccfd14 100644 --- a/docs/migration.txt +++ b/docs/migration.txt @@ -826,6 +826,11 @@ perl -pi.bak -e 's!WebGUI\:\:Storage\-\>createTemp\(!WebGUI::Storage->createTemp perl -pi.bak -e 's!WebGUI\:\:Storage\:\:Image\-\>createTemp\(!WebGUI::Storage::Image->createTemp(\$self->session,!g' fileNameGoesHere +5.23.22 WebGUI::Subscription API Refactored + +perl -pi.bak -e 's!WebGUI\:\:Subscription\-\>new\(!WebGUI::Subscription->new(\$self->session,!g' fileNameGoesHere + + 6. Automatic list of Assets in Help System. ------------------------------------- diff --git a/lib/WebGUI/Commerce/Item/Subscription.pm b/lib/WebGUI/Commerce/Item/Subscription.pm index ff5f67d08..230f1b9b9 100644 --- a/lib/WebGUI/Commerce/Item/Subscription.pm +++ b/lib/WebGUI/Commerce/Item/Subscription.pm @@ -43,7 +43,7 @@ sub new { $subscriptionId = shift; $type = shift; - $subscription = WebGUI::Subscription->new($subscriptionId); + $subscription = WebGUI::Subscription->new($self->session,$subscriptionId); bless {_subscription => $subscription, _subscriptionId => $subscriptionId}, $class; } diff --git a/lib/WebGUI/Operation/Subscription.pm b/lib/WebGUI/Operation/Subscription.pm index e8b88e24c..e747d6d17 100644 --- a/lib/WebGUI/Operation/Subscription.pm +++ b/lib/WebGUI/Operation/Subscription.pm @@ -156,7 +156,7 @@ sub www_deleteSubscription { my $session = shift; return $session->privilege->adminOnly() unless ($session->user->isInGroup(3)); - WebGUI::Subscription->new($session->form->process("sid"))->delete; + WebGUI::Subscription->new($session,$session->form->process("sid"))->delete; return www_listSubscriptions(); } @@ -196,7 +196,7 @@ sub www_editSubscription { my $i18n = WebGUI::International->new($session, "Subscription"); unless ($session->form->process("sid") eq 'new') { - $properties = WebGUI::Subscription->new($session->form->process("sid"))->get; + $properties = WebGUI::Subscription->new($session,$session->form->process("sid"))->get; } $subscriptionId = $session->form->process("sid") || 'new'; @@ -271,7 +271,7 @@ sub www_editSubscriptionSave { return $session->privilege->adminOnly() unless ($session->user->isInGroup(3)); @relevantFields = qw(subscriptionId name price description subscriptionGroup duration executeOnSubscription karma); - WebGUI::Subscription->new($session->form->process("sid"))->set({map {$_ => $session->form->process("$_}} @relevantFields")); + WebGUI::Subscription->new($session,$session->form->process("sid"))->set({map {$_ => $session->form->process("$_}} @relevantFields")); return www_listSubscriptions(); } @@ -439,7 +439,7 @@ sub www_redeemSubscriptionCode { # Code is ok @subscriptions = $session->db->buildArray("select subscriptionId from subscriptionCodeSubscriptions where code=".$session->db->quote($session->form->process("code"))); foreach (@subscriptions) { - WebGUI::Subscription->new($_)->apply; + WebGUI::Subscription->new($session,$_)->apply; } # Set code to Used diff --git a/lib/WebGUI/Subscription.pm b/lib/WebGUI/Subscription.pm index 39104ecd2..a6c34a715 100644 --- a/lib/WebGUI/Subscription.pm +++ b/lib/WebGUI/Subscription.pm @@ -1,12 +1,8 @@ package WebGUI::Subscription; -use WebGUI::Session; -use WebGUI::SQL; -use WebGUI::Grouping; use WebGUI::Macro; use WebGUI::Utility; use WebGUI::Commerce::Payment; -use WebGUI::DateTime; =head1 NAME @@ -28,15 +24,15 @@ Text description of how long the subscription lasts. =cut sub _getDuration { + my $self = shift; my $duration = shift; - - return$self->session->datetime->addToDate(0,0,0,7) if $duration eq 'Weekly'; - return$self->session->datetime->addToDate(0,0,0,14) if $duration eq 'BiWeekly'; - return$self->session->datetime->addToDate(0,0,0,28) if $duration eq 'FourWeekly'; - return$self->session->datetime->addToDate(0,0,1,0) if $duration eq 'Monthly'; - return$self->session->datetime->addToDate(0,0,3,0) if $duration eq 'Quarterly'; - return$self->session->datetime->addToDate(0,0,6,0) if $duration eq 'HalfYearly'; - return$self->session->datetime->addToDate(0,1,0,0) if $duration eq 'Yearly'; + return $self->session->datetime->addToDate(0,0,0,7) if $duration eq 'Weekly'; + return $self->session->datetime->addToDate(0,0,0,14) if $duration eq 'BiWeekly'; + return $self->session->datetime->addToDate(0,0,0,28) if $duration eq 'FourWeekly'; + return $self->session->datetime->addToDate(0,0,1,0) if $duration eq 'Monthly'; + return $self->session->datetime->addToDate(0,0,3,0) if $duration eq 'Quarterly'; + return $self->session->datetime->addToDate(0,0,6,0) if $duration eq 'HalfYearly'; + return $self->session->datetime->addToDate(0,1,0,0) if $duration eq 'Yearly'; } #------------------------------------------------------------------- @@ -62,7 +58,7 @@ sub apply { $groupId = $self->{_properties}{subscriptionGroup}; # Make user part of the right group - $group->addUsers([$userId], [$groupId], _getDuration($self->{_properties}{duration})); + $group->addUsers([$userId], [$groupId], $self->_getDuration($self->{_properties}{duration})); # Add karma WebGUI::User->new($userId)->karma($self->{_properties}{karma}, 'Subscription', 'Added for purchasing subscription '.$self->{_properties}{name}); @@ -112,10 +108,14 @@ sub get { #------------------------------------------------------------------- -=head2 new ( $subscriptionId ) +=head2 new ( session, subscriptionId ) Object creation method. +=head3 session + +A reference to the current session. + =head3 subscriptionId ID of the subscription to create. If this subscriptionId exists in the @@ -127,16 +127,30 @@ from the database. sub new { my ($class, $subscriptionId, %properties); $class = shift; + my $session = shift; $subscriptionId = shift; if ($subscriptionId eq 'new') { - $subscriptionId = $self->session->id->generate; - $self->session->db->write("insert into subscription (subscriptionId) values (".$self->session->db->quote($subscriptionId).")"); + $subscriptionId = $session->id->generate; + $session->db->write("insert into subscription (subscriptionId) values (".$session->db->quote($subscriptionId).")"); } - %properties = $self->session->db->quickHash("select * from subscription where subscriptionId=".$self->session->db->quote($subscriptionId)); + %properties = $session->db->quickHash("select * from subscription where subscriptionId=".$session->db->quote($subscriptionId)); - bless {_subscriptionId => $subscriptionId, _properties => \%properties}, $class; + bless {_session=>$session, _subscriptionId => $subscriptionId, _properties => \%properties}, $class; +} + +#------------------------------------------------------------------- + +=head2 session ( ) + +Returns a reference to the current session. + +=cut + +sub session { + my $self = shift; + return $self->{_session}; } #-------------------------------------------------------------------