Skip to content

Commit

Permalink
Implement terms response
Browse files Browse the repository at this point in the history
  • Loading branch information
judofyr committed Aug 19, 2011
1 parent c359af2 commit 592fc6c
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 2 deletions.
16 changes: 14 additions & 2 deletions lib/SolarBeam/Response.pm
Expand Up @@ -16,6 +16,8 @@ has 'facet_fields';
has 'facet_dates';
has 'facet_ranges';

has 'terms';

has 'pager' => sub { Data::Page->new };

sub new {
Expand All @@ -24,9 +26,10 @@ sub new {
my $header = $data->{responseHeader};
my $res = $data->{response};
my $facets = $data->{facet_counts};
my $terms = $data->{terms};
my $field;

if (!$header and !$res) {
if (!$header) {
$self->status = 1;
return $self;
}
Expand All @@ -42,8 +45,17 @@ sub new {
for $field (keys %{$facets}) {
$self->$field($facets->{$field});
}

if ($terms) {
my $sane_terms = {};
for $field (keys %{$terms}) {
my %values = @{$terms->{$field}};
$sane_terms->{$field} = \%values;
}
$self->terms($sane_terms);
}

if ($self->ok) {
if ($self->ok && $res) {
$self->pager->total_entries($self->numFound);
}

Expand Down
1 change: 1 addition & 0 deletions t/fixtures/terms.json
@@ -0,0 +1 @@
{"responseHeader":{"status":0,"QTime":243},"terms":{"artifact.name":["oslo",2535,"oscar",846,"ostkar",485,"ostform",451,"ostformar",375,"oslobilder",251,"ostämplade",232,"osteform",178,"ost",158,"osram",148],"artifact.event.production.place":["oslo",169788,"oslo,",139952,"oslofjorden",1288,"oslofjorden,",884,"os",332,"osen",265,"osby",209,"oscarshall",201,"oscars",186,"osby,",143]}}
4 changes: 4 additions & 0 deletions t/response.t
Expand Up @@ -29,4 +29,8 @@ ok($res->ok);
ok($res->facet_fields);
is(scalar @{$res->facet_fields->{'identifier.owner'}}, 168);

$res = SolarBeam::Response->new(fixture('terms'));
ok($res->ok);
ok($res->terms);
is(scalar keys %{$res->terms->{'artifact.name'}}, 10);

0 comments on commit 592fc6c

Please sign in to comment.