From 666fd833584fe2e3618a397fe9d9a9bdf4c5b94b Mon Sep 17 00:00:00 2001 From: einhverfr Date: Thu, 26 Apr 2007 18:00:56 +0000 Subject: Doing a simple Perltidy commit so that I can evaluate differences between the branches and make sure patches are up to date git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@1103 4979c152-3d1c-0410-bac9-87ea11338e46 --- LedgerSMB/RESTXML/Document/Customer_Search.pm | 91 ++++++++++++++++----------- 1 file changed, 53 insertions(+), 38 deletions(-) (limited to 'LedgerSMB/RESTXML/Document/Customer_Search.pm') diff --git a/LedgerSMB/RESTXML/Document/Customer_Search.pm b/LedgerSMB/RESTXML/Document/Customer_Search.pm index 7456f9d3..9f2fb3d6 100644 --- a/LedgerSMB/RESTXML/Document/Customer_Search.pm +++ b/LedgerSMB/RESTXML/Document/Customer_Search.pm @@ -4,43 +4,58 @@ use warnings; use base qw(LedgerSMB::RESTXML::Document::Base); use LedgerSMB::Log; -sub handle_get { - my ($self, $args) = @_; - my $user = $args->{user}; - my $dbh = $args->{dbh}; - my $handler = $args->{handler}; - - my $query = $handler->read_query(); - - my %terms; - - for my $field ($query->param()) { - # TODO: BIG GAPING HOLE HERE. - $terms{$field} = $query->param($field); - } - - if($terms{_keyword}) { - %terms = ( - name=>$terms{_keyword}, - customernumber=>$terms{_keyword}, - contact=>$terms{_keyword} - ); - } - my $sql = 'SELECT id,name,phone,customernumber FROM customer WHERE '.join(' OR ',map { "$_ like ?" } sort keys %terms); - - - my $res = $dbh->prepare($sql); - - $res->execute(map { "$terms{$_}\%" } sort keys %terms) or return $handler->error($dbh->errstr); - - my @rows; - my $row; - push @rows, $row while $row = $res->fetchrow_hashref(); - - $res->finish(); - - $handler->respond(XML::Twig::Elt->new('Customer_Search_Response',{'xmlns:xlink'=>"http://www.w3.org/1999/xlink"},map { - $self->hash_to_twig({name=>'Customer',root_attr=>{'xlink:href'=>"Customer/$_->{id}"}, hash=>$_}); - } @rows)); +sub handle_get { + my ( $self, $args ) = @_; + my $user = $args->{user}; + my $dbh = $args->{dbh}; + my $handler = $args->{handler}; + + my $query = $handler->read_query(); + + my %terms; + + for my $field ( $query->param() ) { + + # TODO: BIG GAPING HOLE HERE. + $terms{$field} = $query->param($field); + } + + if ( $terms{_keyword} ) { + %terms = ( + name => $terms{_keyword}, + customernumber => $terms{_keyword}, + contact => $terms{_keyword} + ); + } + my $sql = + 'SELECT id,name,phone,customernumber FROM customer WHERE ' + . join( ' OR ', map { "$_ like ?" } sort keys %terms ); + + my $res = $dbh->prepare($sql); + + $res->execute( map { "$terms{$_}\%" } sort keys %terms ) + or return $handler->error( $dbh->errstr ); + + my @rows; + my $row; + push @rows, $row while $row = $res->fetchrow_hashref(); + + $res->finish(); + + $handler->respond( + XML::Twig::Elt->new( + 'Customer_Search_Response', + { 'xmlns:xlink' => "http://www.w3.org/1999/xlink" }, + map { + $self->hash_to_twig( + { + name => 'Customer', + root_attr => { 'xlink:href' => "Customer/$_->{id}" }, + hash => $_ + } + ); + } @rows + ) + ); } 1; -- cgit v1.2.3