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

@ -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;
}

View file

@ -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

View file

@ -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};
}
#-------------------------------------------------------------------