Changeset 143
- Timestamp:
- 12/19/10 13:25:57 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
server/trunk/web/lib/Sophie/Controller/Search.pm
r135 r143 566 566 } 567 567 568 sub sources : XMLRPCPath('/search/rpm/sources') { 569 my ( $self, $c, $searchspec, $pkgid ) = @_; 570 571 my $distrs = $c->forward('distrib_search', [ $searchspec, 1 ]); 572 my $sourcerpm = $c->forward('/rpms/queryformat', [ $pkgid, '%{SOURCERPM}' ]); 573 my $nosourcerpm = $sourcerpm; 574 $nosourcerpm =~ s/\.src.rpm$/\.nosrc.rpm/; 575 576 $c->stash->{xmlrpc} = [ $c->model('Base::Rpms')->search( 577 { 578 -and => [ 579 { pkgid => { 580 IN => $c->model('Base::RpmFile')->search( 581 { filename => [ $sourcerpm, $nosourcerpm ] } 582 )->get_column('pkgid')->as_query 583 }, }, 584 ($distrs 585 ? ({ pkgid => { IN => $distrs->get_column('pkgid')->as_query, }, },) 586 : ()), 587 ], 588 } 589 )->get_column('pkgid')->all ]; 590 } 591 592 sub binaries : XMLRPCPath('/search/rpm/binaries') { 593 my ( $self, $c, $searchspec, $pkgid ) = @_; 594 595 my $distrs = $c->forward('distrib_search', [ $searchspec, 1 ]); 596 my $sourcerpm = $c->forward('/rpms/queryformat', [ $pkgid, 597 '%{NAME}-%{VERSION}-%{RELEASE}.src.rpm' ]); 598 my $nosourcerpm = $sourcerpm; 599 $nosourcerpm =~ s/\.src.rpm$/\.nosrc.rpm/; 600 601 my $tagrs = $c->model('Base')->resultset('Tags') 602 ->search({ tagname => 'sourcerpm', value => [ $sourcerpm, $nosourcerpm ] }) 603 ->get_column('pkgid'); 604 $c->stash->{xmlrpc} = [ $c->model('Base::Rpms')->search( 605 { 606 -and => [ 607 { issrc => 0 }, 608 { pkgid => 609 { IN => $tagrs->as_query, }, 610 }, 611 ($distrs 612 ? ({ pkgid => { IN => $distrs->get_column('pkgid')->as_query, }, }) 613 : ()), 614 ] 615 }, 616 { 617 order_by => [ qw(arch name), 'evr using >>' ], 618 }, 619 )->get_column('pkgid')->all ]; 620 621 } 622 568 623 sub file_search : XMLRPCPath('/search/file/byname') { 569 624 my ( $self, $c, $searchspec, $file) = @_;
Note: See TracChangeset
for help on using the changeset viewer.