converted subscription api
This commit is contained in:
parent
1e5034acd6
commit
0cc5884b77
4 changed files with 42 additions and 23 deletions
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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};
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue