%#
%# COPYRIGHT:
%#
-%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
%# <sales@bestpractical.com>
%#
%# (Except where explicitly superseded by other copyright notices)
use RT::Interface::REST;
my $output = "";
my $status = "200 Ok";
-my $tickets = new RT::Tickets $session{CurrentUser};
+my $tickets = RT::Tickets->new($session{CurrentUser});
# Parse and validate any field specifications.
my $field = RT::Interface::REST->field_spec;
eval {
($n, $s) = $tickets->FromSQL($query);
};
-my $sortstring = "";
+
if ($orderby) {
- $sortstring = 'FIELD => ';
+ my %args;
+
my $order = substr($orderby, 0, 1);
if ($order eq '+' || $order eq '-') {
- $sortstring .= 'substr($orderby, 1)';
- if ($order eq '+') {
- $sortstring .= ", ORDER => 'ASC'";
- } elsif ($order eq '-') {
- $sortstring .= ", ORDER => 'DESC'";
- }
- } else {
- $sortstring .= '$orderby';
+ # remove the +/- sorting sigil
+ substr($orderby, 0, 1, '');
+
+ if ($order eq '+') {
+ $args{ORDER} = 'ASC';
+ }
+ elsif ($order eq '-') {
+ $args{ORDER} = 'DESC';
+ }
}
- my $foo = 'FIELD => ';
- $foo .= '$orderby';
- $tickets->OrderBy(eval $sortstring);
+
+ $tickets->OrderBy(
+ FIELD => $orderby,
+ %args,
+ );
}
+
if ($@ || $n == 0) {
$s ||= $@;
$status = "400 Bad request";
}
# Cut off the annoying ticket/ before the id;
$key_values->{'id'} = $id;
- $output .= join("\t", map {$key_values->{$_}} @$order)."\n";
-
+ $output .= join("\t", map { ref $key_values->{$_} eq 'ARRAY' ?
+join( ', ', @{$key_values->{$_}} ) : $key_values->{$_} } @$order)."\n";
+
- } else {
+ } else {
$output .= $ticket->Id . ": ". $ticket->Subject . "\n";
}
}