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