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