r12294 - in mb_server/trunk: . lib/MusicBrainz/Server lib/MusicBrainz/Server/Data lib/MusicBrainz/Server/WebService

View: New views
1 Messages — Rating Filter:   Alert me  

r12294 - in mb_server/trunk: . lib/MusicBrainz/Server lib/MusicBrainz/Server/Data lib/MusicBrainz/Server/WebService

by root-97 :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

Author: robert
Date: 2009-11-10 21:00:16 +0000 (Tue, 10 Nov 2009)
New Revision: 12294

Added:
   mb_server/trunk/lib/MusicBrainz/Server/WebService/
   mb_server/trunk/lib/MusicBrainz/Server/WebService/Escape.pm
   mb_server/trunk/lib/MusicBrainz/Server/WebService/Validator.pm
   mb_server/trunk/lib/MusicBrainz/Server/WebService/WebServiceInc.pm
   mb_server/trunk/lib/MusicBrainz/Server/WebService/XMLSearch.pm
   mb_server/trunk/lib/MusicBrainz/Server/WebService/XMLSerializer.pm
Modified:
   mb_server/trunk/Makefile.PL
   mb_server/trunk/lib/MusicBrainz/Server/Data/ReleaseGroup.pm
Log:
Checking in the first portion of the web service interface as per review 451


Modified: mb_server/trunk/Makefile.PL
===================================================================
--- mb_server/trunk/Makefile.PL 2009-11-10 07:42:51 UTC (rev 12293)
+++ mb_server/trunk/Makefile.PL 2009-11-10 21:00:16 UTC (rev 12294)
@@ -22,6 +22,7 @@
 requires 'Catalyst::Plugin::Static::Simple'            => '0.21';
 requires 'Catalyst::Runtime'                           => '5.80007';
 requires 'Catalyst::View::TT'                          => '0.29';
+requires 'Data::OptList';
 requires 'Data::Page'                                  => '2.01';
 requires 'Date::Calc'                                  => '5.4';
 requires 'DateTime::TimeZone';

Modified: mb_server/trunk/lib/MusicBrainz/Server/Data/ReleaseGroup.pm
===================================================================
--- mb_server/trunk/lib/MusicBrainz/Server/Data/ReleaseGroup.pm 2009-11-10 07:42:51 UTC (rev 12293)
+++ mb_server/trunk/lib/MusicBrainz/Server/Data/ReleaseGroup.pm 2009-11-10 21:00:16 UTC (rev 12294)
@@ -10,6 +10,7 @@
     partial_date_from_row
     placeholders
     query_to_list_limited
+    query_to_list
 );
 
 extends 'MusicBrainz::Server::Data::CoreEntity';
@@ -88,6 +89,43 @@
         $query, $artist_id, $offset || 0);
 }
 
+# This could be wrapped into find_by_artist, but it still needs to support filtering on VA releases
+sub filter_by_artist
+{
+    my ($self, $artist_id, $type) = @_;
+    my $query = "SELECT " . $self->_columns . ",
+                    rgm.firstreleasedate_year,
+                    rgm.firstreleasedate_month,
+                    rgm.firstreleasedate_day,
+                    rgm.releasecount,
+                    rgm.ratingcount,
+                    rgm.rating
+                 FROM " . $self->_table . "
+                    JOIN release_group_meta rgm
+                        ON rgm.id = rg.id
+                    JOIN artist_credit_name acn
+                        ON acn.artist_credit = rg.artist_credit
+                 WHERE acn.artist = ?
+                   AND type = ?
+                 ORDER BY
+                    rg.type,
+                    rgm.firstreleasedate_year,
+                    rgm.firstreleasedate_month,
+                    rgm.firstreleasedate_day,
+                    name.name";
+    return query_to_list(
+        $self->c->dbh, sub {
+            my $row = $_[0];
+            my $rg = $self->_new_from_row($row);
+            $rg->rating($row->{rating}) if defined $row->{rating};
+            $rg->rating_count($row->{ratingcount}) if defined $row->{ratingcount};
+            $rg->first_release_date(partial_date_from_row($row, 'firstreleasedate_'));
+            $rg->release_count($row->{releasecount} || 0);
+            return $rg;
+        },
+        $query, $artist_id, $type);
+}
+
 sub insert
 {
     my ($self, @groups) = @_;


Property changes on: mb_server/trunk/lib/MusicBrainz/Server/WebService/WebServiceInc.pm
___________________________________________________________________
Added: svn:mergeinfo
   +


_______________________________________________
MusicBrainz-commits mailing list
MusicBrainz-commits@...
http://lists.musicbrainz.org/mailman/listinfo/musicbrainz-commits