[Cpan-forum-commit] rev 307 - in trunk: . lib/CPAN/Forum/DB lib/CPAN/Forum/RM
svn at pti.co.il
svn at pti.co.il
Wed Jul 25 17:47:47 EEST 2007
Author: gabor
Date: 2007-07-25 17:47:47 +0300 (Wed, 25 Jul 2007)
New Revision: 307
Modified:
trunk/
trunk/lib/CPAN/Forum/DB/Subscriptions.pm
trunk/lib/CPAN/Forum/RM/Subscriptions.pm
Log:
create find_one method of DB::Subscriptions
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4327
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752
+ 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4328
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752
Modified: trunk/lib/CPAN/Forum/DB/Subscriptions.pm
===================================================================
--- trunk/lib/CPAN/Forum/DB/Subscriptions.pm 2007-07-25 14:47:16 UTC (rev 306)
+++ trunk/lib/CPAN/Forum/DB/Subscriptions.pm 2007-07-25 14:47:47 UTC (rev 307)
@@ -8,4 +8,19 @@
__PACKAGE__->has_a(uid => "CPAN::Forum::DB::Users");
__PACKAGE__->has_a(gid => "CPAN::Forum::DB::Groups");
+
+sub find_one {
+ my ($self, %args) = @_;
+ # check if keys of args is either uid or gid
+ my @fields = keys %args;
+ my $where = join " AND ", map {"$_=?"} @fields;
+ my $sql = "SELECT id, gid, uid, allposts, starters, followups, announcements FROM subscriptions";
+ if ($where) {
+ $sql .= " WHERE $where";
+ }
+
+ $self->_fetch_single_hashref($sql, @args{@fields});
+
+}
+
1;
Modified: trunk/lib/CPAN/Forum/RM/Subscriptions.pm
===================================================================
--- trunk/lib/CPAN/Forum/RM/Subscriptions.pm 2007-07-25 14:47:16 UTC (rev 306)
+++ trunk/lib/CPAN/Forum/RM/Subscriptions.pm 2007-07-25 14:47:47 UTC (rev 307)
@@ -25,14 +25,14 @@
C<update_subscription> will process the submitted form.
+ /mypan
+ /mypan/dist/MODULE-NAME
+
=cut
sub mypan {
my $self = shift;
- my $t = $self->load_tmpl("mypan.tmpl",
- loop_context_vars => 1,
- );
my $username = $self->session->param("username");
my $user = CPAN::Forum::DB::Users->info_by(username => $username); # SQL
@@ -41,19 +41,27 @@
"Trouble accessing personal information of: '$username'",
);
}
- my $fullname = $user->{fullname};
- $t->param(fullname => $fullname);
- $t->param(title => "Information about $username");
-
my @params = @{$self->param("path_parameters")};
- my ($gids, $subscriptions) =
- (@params == 2 and $params[0] eq "dist")
- ? $self->_get_module_subscription($user, $params[1])
- : $self->_get_all_subscriptions($user);
+ my ($gids, $subscriptions);
+ if (@params == 2 and $params[0] eq "dist") {
+ my $group_name = $params[1];
+ my $group = CPAN::Forum::DB::Groups->info_by(name => $group_name); # SQL
+ if (not $group) {
+ return $self->internal_error("Accessing");
+ }
+ ($gids, $subscriptions) = $self->_get_module_subscription($user, $group_name, $group);
+ } else {
+ ($gids, $subscriptions) = $self->_get_all_subscriptions($user);
+ }
+ my $t = $self->load_tmpl("mypan.tmpl",
+ loop_context_vars => 1,
+ );
$t->param(subscriptions => $subscriptions);
- $t->param(gids => $gids);
+ $t->param(gids => $gids);
+ $t->param(fullname => $user->{fullname});
+ $t->param(title => "Information about $username");
$t->output;
}
@@ -99,25 +107,20 @@
return ($gids, \@subscriptions);
}
-
sub _get_module_subscription {
- my ($self, $user, $group_name) = @_;
+ my ($self, $user, $group_name, $group) = @_;
- my $group = CPAN::Forum::DB::Groups->info_by(name => $group_name); # SQL
- if (not $group) {
- return $self->internal_error("Accessing");
- }
my @subscriptions;
my $gid = $group->{id};
my $gids = $group->{id};
- my ($s) = CPAN::Forum::DB::Subscriptions->search(uid => $user->{id}, gid => $gid);
+ my ($s) = CPAN::Forum::DB::Subscriptions->find_one(uid => $user->{id}, gid => $gid); # SQL
if ($s) {
push @subscriptions, {
gid => $gid,
group => $group_name,
- allposts => $s->allposts,
- starters => $s->starters,
- followups => $s->followups,
+ allposts => $s->{allposts},
+ starters => $s->{starters},
+ followups => $s->{followups},
};
} else {
push @subscriptions, {
More information about the Cpan-forum-commit
mailing list