1 package OpenILS::Application::Proxy;
2 use strict; use warnings;
3 use OpenILS::Application;
4 use base qw/OpenILS::Application/;
5 use OpenSRF::EX qw(:try);
8 __PACKAGE__->register_method(
10 api_name => "open-ils.proxy.proxy",
16 my($self, $client, $user_session,
17 $server, $method, @params) = @_;
19 warn "$user_session - $server - $method\n";
21 throw OpenSRF::EX::ERROR ("Not enough args to proxy")
22 unless ($user_session and $server and $method);
25 my $session = OpenSRF::AppSession->create($server);
26 my $request = $session->request( $method, @params );
28 throw OpenSRF::EX::ERROR
29 ("No request built on call to session->request( $method, @params )");
32 $request->wait_complete;
34 if( $request->failed() ) {
36 throw OpenSRF::EX::ERROR
37 ($request->failed()->stringify());
41 while( my $response = $request->recv ) {
42 $client->respond( $response->content );
48 $session->disconnect();