1 package OpenILS::Application::Proxy;
2 use strict; use warnings;
3 use base qw/OpenSRF::Application/;
4 use OpenSRF::EX qw(:try);
7 __PACKAGE__->register_method(
9 api_name => "open-ils.proxy.proxy",
14 my($self, $client, $user_session,
15 $server, $method, @params) = @_;
17 warn "$user_session - $server - $method\n";
19 throw OpenSRF::EX::ERROR ("Not enough args to proxy")
20 unless ($user_session and $server and $method);
23 my $session = OpenSRF::AppSession->create($server);
24 my $request = $session->request( $method, @params );
26 throw OpenSRF::EX::ERROR
27 ("No request built on call to session->request( $method, @params )");
30 $request->wait_complete;
32 if( $request->failed() ) {
34 throw OpenSRF::EX::ERROR
35 ($request->failed()->stringify());
39 while( my $response = $request->recv ) {
40 $client->respond( $response->content );
46 $session->disconnect();