converted subscription api

This commit is contained in:
JT Smith 2006-01-12 19:27:59 +00:00
parent 1e5034acd6
commit 0cc5884b77
4 changed files with 42 additions and 23 deletions

View file

@ -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 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. 6. Automatic list of Assets in Help System.
------------------------------------- -------------------------------------

View file

@ -43,7 +43,7 @@ sub new {
$subscriptionId = shift; $subscriptionId = shift;
$type = shift; $type = shift;
$subscription = WebGUI::Subscription->new($subscriptionId); $subscription = WebGUI::Subscription->new($self->session,$subscriptionId);
bless {_subscription => $subscription, _subscriptionId => $subscriptionId}, $class; bless {_subscription => $subscription, _subscriptionId => $subscriptionId}, $class;
} }

View file

@ -156,7 +156,7 @@ sub www_deleteSubscription {
my $session = shift; my $session = shift;
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3)); 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(); return www_listSubscriptions();
} }
@ -196,7 +196,7 @@ sub www_editSubscription {
my $i18n = WebGUI::International->new($session, "Subscription"); my $i18n = WebGUI::International->new($session, "Subscription");
unless ($session->form->process("sid") eq 'new') { 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'; $subscriptionId = $session->form->process("sid") || 'new';
@ -271,7 +271,7 @@ sub www_editSubscriptionSave {
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3)); return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
@relevantFields = qw(subscriptionId name price description subscriptionGroup duration executeOnSubscription karma); @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(); return www_listSubscriptions();
} }
@ -439,7 +439,7 @@ sub www_redeemSubscriptionCode {
# Code is ok # Code is ok
@subscriptions = $session->db->buildArray("select subscriptionId from subscriptionCodeSubscriptions where code=".$session->db->quote($session->form->process("code"))); @subscriptions = $session->db->buildArray("select subscriptionId from subscriptionCodeSubscriptions where code=".$session->db->quote($session->form->process("code")));
foreach (@subscriptions) { foreach (@subscriptions) {
WebGUI::Subscription->new($_)->apply; WebGUI::Subscription->new($session,$_)->apply;
} }
# Set code to Used # Set code to Used

View file

@ -1,12 +1,8 @@
package WebGUI::Subscription; package WebGUI::Subscription;
use WebGUI::Session;
use WebGUI::SQL;
use WebGUI::Grouping;
use WebGUI::Macro; use WebGUI::Macro;
use WebGUI::Utility; use WebGUI::Utility;
use WebGUI::Commerce::Payment; use WebGUI::Commerce::Payment;
use WebGUI::DateTime;
=head1 NAME =head1 NAME
@ -28,15 +24,15 @@ Text description of how long the subscription lasts.
=cut =cut
sub _getDuration { sub _getDuration {
my $self = shift;
my $duration = 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,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,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,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,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,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,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,1,0,0) if $duration eq 'Yearly';
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------
@ -62,7 +58,7 @@ sub apply {
$groupId = $self->{_properties}{subscriptionGroup}; $groupId = $self->{_properties}{subscriptionGroup};
# Make user part of the right group # 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 # Add karma
WebGUI::User->new($userId)->karma($self->{_properties}{karma}, 'Subscription', 'Added for purchasing subscription '.$self->{_properties}{name}); 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. Object creation method.
=head3 session
A reference to the current session.
=head3 subscriptionId =head3 subscriptionId
ID of the subscription to create. If this subscriptionId exists in the ID of the subscription to create. If this subscriptionId exists in the
@ -127,16 +127,30 @@ from the database.
sub new { sub new {
my ($class, $subscriptionId, %properties); my ($class, $subscriptionId, %properties);
$class = shift; $class = shift;
my $session = shift;
$subscriptionId = shift; $subscriptionId = shift;
if ($subscriptionId eq 'new') { if ($subscriptionId eq 'new') {
$subscriptionId = $self->session->id->generate; $subscriptionId = $session->id->generate;
$self->session->db->write("insert into subscription (subscriptionId) values (".$self->session->db->quote($subscriptionId).")"); $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};
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------