From 4f5d3ae388afb331947c92f483b460630634d41e Mon Sep 17 00:00:00 2001 From: miker Date: Tue, 5 Jul 2005 14:46:07 +0000 Subject: [PATCH] CGIizing the REST-ful gateway git-svn-id: svn://svn.open-ils.org/ILS/trunk@1035 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/src/extras/Perl2REST.pl | 53 ++++++++++---------------------- 1 file changed, 16 insertions(+), 37 deletions(-) diff --git a/Open-ILS/src/extras/Perl2REST.pl b/Open-ILS/src/extras/Perl2REST.pl index b7414b28f1..3fa48307b4 100755 --- a/Open-ILS/src/extras/Perl2REST.pl +++ b/Open-ILS/src/extras/Perl2REST.pl @@ -1,57 +1,36 @@ #!/usr/bin/perl -w use strict;use warnings; -use OpenSRF::System qw(/pines/conf/client.conf); -use OpenSRF::EX qw/:try/; +use OpenSRF::System; +use OpenSRF::Application; use OpenILS::Utils::Fieldmapper; -use Time::HiRes (qw/time/); +use CGI; $| = 1; -# ---------------------------------------------------------------------------------------- -# This is a quick and dirty script to perform benchmarking against the math server. -# Note: 1 request performs a batch of 4 queries, one for each supported method: add, sub, -# mult, div. -# Usage: $ perl math_bench.pl -# ---------------------------------------------------------------------------------------- +my $cgi = new CGI; +my $url = $cgi->url; - -my $method = shift; +my $method = $cgi->param('method'); +my @params = $cgi->param('param'); unless( $method ) { - print "usage: $0 method\n"; + print "Content-Type: text/plain\n\n"; + print "usage: $url?method={method}¶m={param1}¶m={param2}...\n"; exit; } -OpenSRF::System->bootstrap_client(); -$method = OpenSRF::Application->method_lookup( $method ); -my $resp = $method->run(@ARGV); +print "Content-Type: text/xml\n\n"; -#my $usr = new Fieldmapper::actor::user; -#$usr->first_given_name('mike'); -#$usr->family_name('rylander'); -# -#my $addr = new Fieldmapper::actor::user_address; -#$addr->street1('123 main st'); -#$addr->post_code('30144'); -# -#$usr->billing_address($addr); +OpenSRF::System->bootstrap_client( config_file => '/pines/conf/bootstrap.conf' ); +$method = OpenSRF::Application->method_lookup( $method ); -#my $resp = { -# a => 'hash', -# b => 'value', -# c => { nested => 'hash' }, -# d => [ qw/with an array inside/ ], -# e => $usr, -#}; +my @resp = $method->run(@params); my $val = ''; -my $start = time; -Perl2REST(\$val, $resp); -my $end = time; +Perl2REST(\$val, $_) for (@resp); print $val; -print "\nTIME: ". ($end - $start) . "s\n"; sub Perl2REST { @@ -95,7 +74,7 @@ sub Perl2REST { } $$val .= ' 'x$level . "\n"; - } elsif (ref($obj) =~ /HASH/o) { + } elsif ($obj =~ /HASH/o) { my $class = ref($obj); $class =~ s/::/_/go; $$val .= ' 'x$level . "<$class>\n"; @@ -106,7 +85,7 @@ sub Perl2REST { $$val .= ' 'x$level . " \n"; } $$val .= ' 'x$level . "\n"; - } elsif (ref($obj) =~ /ARRAY/o) { + } elsif ($obj =~ /ARRAY/o) { my $class = ref($obj); $class =~ s/::/_/go; my $next = $level + 1; -- 2.43.2