git-svn-id: http://code.softwarefreedom.org/svn/stet/trunk@5 55a1384f-cf82-4c22-9380...
[stet:stet.git] / rt-test.pl
1 #!/usr/bin/perl -w
2 # Copyright 2005 Software Freedom Law Center, Inc.
3 #
4 # This program is free software: you may copy, modify, or redistribute it
5 # and/or modify it under either:
6 #
7 #  (a) the terms of the GNU Affero General Public License as published by
8 #      the Free Software Foundation, either version 3 of the License, or
9 #      (at your option) any later version.
10 #    or
11 #  (b) the terms of the GNU General Public license, version 2, as
12 #      published by the Free Software Foundation.
13 #
14 # This program is distributed in the hope that it will be useful, but
15 # WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero
17 # General Public License and/or GNU General Public License for more
18 # details.
19 #
20 # You should have received a copy of the GNU Affero General Public License
21 # and the GNU General Public License along with this program. If not, see
22 # <http://www.gnu.org/licenses/>.
23
24 use CGI qw(:standard);
25 use lib '/usr/share/request-tracker3.4/lib/';
26 use lib '/etc/request-tracker3.4/';
27 use RT::Interface::CLI qw(CleanEnv GetCurrentUser GetMessageContent);
28
29
30 use RT;
31 RT::LoadConfig();
32 RT::Init();
33 use RT::Ticket;
34 use RT::Transactions;
35 use RT::CurrentUser;
36 use RT::CustomField;
37 use Data::Dumper;
38 my $CurrentUser = RT::Interface::CLI::GetCurrentUser();
39 my $CustomFieldObj = RT::CustomField->new($CurrentUser);
40 #my $Query= " Requestor.EmailAddress LIKE 'moglen' ";
41 my $Query;
42  if(param()) {
43
44      $NoteUrl = param('NoteUrl');
45 #     $Query = " CustomFields.NoteUrl LIKE '$NoteUrl' ";
46  }
47 # else {
48     $Query= " Requestor.EmailAddress LIKE 'moglen' ";
49 #}
50
51 my $TicketObj = new RT::Tickets( $RT::SystemUser );
52 $TicketObj->FromSQL($Query);
53 $TicketObj->Query();
54 $TicketObj->LimitCustomField(
55      CUSTOMFIELD => 3,
56      VALUE => $NoteUrl,
57      OPERATOR => "="
58 );
59 $count = $TicketObj->CountAll();
60 #print $TicketObj->loc("Found [quant,_1,annotation].\n",$count);
61
62 print header('text/xml');
63 my $returnme;
64 $returnme .=  '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'."\n";
65 $returnme .= "<response>\n";
66 $TicketObj->GotoFirstItem();
67 my $annotation;
68 while (my $item = $TicketObj->Next) {
69 $annotation = "";
70     my $Transactions = $item->Transactions;
71   while (my $Transaction = $Transactions->Next) {
72           next unless ($Transaction->Type =~ /^(Create|Correspond|Comment$)/);
73
74     my $attachments = $Transaction->Attachments;
75      my $CustomFields = $item->QueueObj->TicketCustomFields();
76     $attachments->GotoFirstItem;
77     my $message = $attachments->Next;
78     $annotation .= $message->Content;
79 }
80 #
81 #    my $Attachs = $item->TransactionObj->Attachments->First;
82 #    my $content = $Attachs->Content;
83 # while (my $CustomField = $CustomFields->Next()) {
84 # my $CustomFieldValues=$Ticket->CustomFieldValues($CustomField->Id);
85     $returnme .= "<annotation>\n";
86 #    $returnme .= " <url>" . $item->FirstCustomFieldValue('NoteUrl') . "</url>\n";
87 #    $returnme .= " <dompath>" . $item->FirstCustomFieldValue('NoteDomPath') . "</dompath>\n";
88     $returnme .= " <n>$annotation</n>\n";
89     $returnme .= " <e>" . $item->FirstCustomFieldValue('NoteEndNodeId') . "</e>\n";
90     $returnme .= " <s>" . $item->FirstCustomFieldValue('NoteSelection') . "</s>\n"; 
91     $returnme .= " <i>" . $item->FirstCustomFieldValue('NoteStartNodeId') . "</i>\n";
92
93           $returnme .= " <id>" . $item->id . "</id>\n";
94     $returnme .= "</annotation>\n";
95
96 #    print Dumper($content);
97
98     }
99
100 $returnme .= "</response>\n";
101 #    printf ("%s", $item->CustomField-3);
102
103 print $returnme;
104 #print Dumper($TicketObj);