[Cpan-forum-commit] rev 299 - in trunk: . lib/CPAN/Forum/DB lib/CPAN/Forum/RM
svn at pti.co.il
svn at pti.co.il
Sun Jul 22 07:04:07 EEST 2007
Author: gabor
Date: 2007-07-22 07:04:07 +0300 (Sun, 22 Jul 2007)
New Revision: 299
Modified:
trunk/
trunk/lib/CPAN/Forum/DB/Groups.pm
trunk/lib/CPAN/Forum/RM/Subscriptions.pm
Log:
more queries in the RM::Subscription are usingplain SQL
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4306
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752
+ 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4307
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752
Modified: trunk/lib/CPAN/Forum/DB/Groups.pm
===================================================================
--- trunk/lib/CPAN/Forum/DB/Groups.pm 2007-07-22 04:03:49 UTC (rev 298)
+++ trunk/lib/CPAN/Forum/DB/Groups.pm 2007-07-22 04:04:07 UTC (rev 299)
@@ -15,9 +15,12 @@
__PACKAGE__->set_sql(count_like => "SELECT count(*) FROM __TABLE__ WHERE %s LIKE '%s'");
__PACKAGE__->set_sql(count => "SELECT count(*) FROM __TABLE__ WHERE %s = '%s'");
+use List::MoreUtils qw(none);
+
sub info_by {
my ($self, $field, $value) = @_;
- Carp::croak("Invalid field '$field'") if $field ne 'id' and $field ne 'name';
+ my @FIELDS = qw(id name);
+ Carp::croak("Invalid field '$field'") if none {$field eq $_} @FIELDS;
my $sql = "SELECT groups.id id, name, status, groups.pauseid, authors.pauseid pauseid_name
FROM groups, authors
Modified: trunk/lib/CPAN/Forum/RM/Subscriptions.pm
===================================================================
--- trunk/lib/CPAN/Forum/RM/Subscriptions.pm 2007-07-22 04:03:49 UTC (rev 298)
+++ trunk/lib/CPAN/Forum/RM/Subscriptions.pm 2007-07-22 04:04:07 UTC (rev 299)
@@ -34,7 +34,7 @@
loop_context_vars => 1,
);
my $username = $self->session->param("username");
- my $user = CPAN::Forum::DB::Users->info_by(username => $username);
+ my $user = CPAN::Forum::DB::Users->info_by(username => $username); # SQL
if (not $user) {
return $self->internal_error(
@@ -52,17 +52,18 @@
if (@params == 2 and $params[0] eq "dist") { # specific distribution
- my $group = $params[1];
- my ($grp) = CPAN::Forum::DB::Groups->search(name => $group);
- if (not $grp) {
+ 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 = $grp->id;
- my ($s) = CPAN::Forum::DB::Subscriptions->search(uid => $user->{id}, gid => $grp->id);
+ my $gid = $group->{id};
+ $gids = $group->{id};
+ my ($s) = CPAN::Forum::DB::Subscriptions->search(uid => $user->{id}, gid => $gid);
if ($s) {
push @subscriptions, {
- gid => $grp->id,
- group => $group,
+ gid => $gid,
+ group => $group_name,
allposts => $s->allposts,
starters => $s->starters,
followups => $s->followups,
@@ -70,8 +71,8 @@
} else {
push @subscriptions, {
- gid => $grp->id,
- group => $group,
+ gid => $gid,
+ group => $group_name,
allposts => 0,
starters => 0,
followups => 0,
@@ -135,32 +136,33 @@
}
my $username = $self->session->param("username");
- my ($user) = CPAN::Forum::DB::Users->search(username => $username);
+ my $user = CPAN::Forum::DB::Users->info_by(username => $username); # SQL
+ my $uid = $user->{id};
foreach my $gid (@gids) {
if ($gid eq "_all") {
- my ($s) = CPAN::Forum::DB::Subscriptions_all->search(uid => $user->id);
+ my ($s) = CPAN::Forum::DB::Subscriptions_all->search(uid => $uid);
if (not $s) {
$s = CPAN::Forum::DB::Subscriptions_all->create({
- uid => $user->id,
+ uid => $uid,
});
}
$self->_update_subs($s, $gid);
} elsif ($gid =~ /^_(\d+)$/) {
my $pauseid = $1;
- my ($s) = CPAN::Forum::DB::Subscriptions_pauseid->search(pauseid => $pauseid, uid => $user->id);
+ my ($s) = CPAN::Forum::DB::Subscriptions_pauseid->search(pauseid => $pauseid, uid => $uid);
if (not $s) {
$s = CPAN::Forum::DB::Subscriptions->create({
- uid => $user->id,
+ uid => $uid,
pauseid => $pauseid,
});
}
$self->_update_subs($s, $gid);
} elsif ($gid =~ /^(\d+)$/) {
- my ($s) = CPAN::Forum::DB::Subscriptions->search(gid => $gid, uid => $user->id);
+ my ($s) = CPAN::Forum::DB::Subscriptions->search(gid => $gid, uid => $uid);
if (not $s) {
$s = CPAN::Forum::DB::Subscriptions->create({
- uid => $user->id,
+ uid => $uid,
gid => $gid,
});
}
@@ -186,10 +188,10 @@
# we should not let the user overwrite it using the new entry box
if ($q->param("type") eq "pauseid") {
my $pauseid = uc $q->param("name");
- my $author = CPAN::Forum::DB::Authors->get_author_by_pauseid($pauseid);
+ my $author = CPAN::Forum::DB::Authors->get_author_by_pauseid($pauseid); # SQL
if ($author) {
my $s = CPAN::Forum::DB::Subscriptions_pauseid->find_or_create({
- uid => $user->id,
+ uid => $uid,
pauseid => $author->{id},
});
$self->_update_subs($s, "_new");
@@ -200,11 +202,11 @@
elsif ($q->param("type") eq "distro") {
my $name = $q->param("name");
$name =~ s/::/-/g;
- my ($grp) = CPAN::Forum::DB::Groups->search(name => $name);
- if ($grp) {
+ my $group = CPAN::Forum::DB::Groups->info_by(name => $name); # SQL
+ if ($group) {
my $s = CPAN::Forum::DB::Subscriptions->find_or_create({
- uid => $user->id,
- gid => $grp->id,
+ uid => $uid,
+ gid => $group->{id},
});
$self->_update_subs($s, "_new");
} else {
More information about the Cpan-forum-commit
mailing list