added YAML cache
[ferlib2koha.git] / lib / FERWeb.pm
1 package FERWeb;
2 use warnings;
3 use strict;
4
5 # sudo apt-get install librpc-xml-perl libio-socket-ssl-perl
6
7 #use IO::Socket::SSL qw(debug4);
8 #use LWP::Debug qw(+);
9
10 require RPC::XML;
11 require RPC::XML::Client;
12 use YAML;
13
14 use Data::Dump qw(dump);
15
16 sub new {
17         my ($class) = @_;
18
19         my $auth = RPC::XML::Client->new('https://www.fer.hr/xmlrpc/xr_auth.php');
20
21         my $login_id = $auth->send_request('auth.rlogin', '_koha', $ENV{PASSWD} )->value;
22         die dump $login_id if ref $login_id eq 'HASH';
23
24         warn "# login_id $login_id\n";
25
26         my $self = { login_id => $login_id };
27         bless $self, $class;
28         return $self;
29 }
30
31 our $users = RPC::XML::Client->new('https://www.fer.hr/xmlrpc/xr_users.php');
32 sub getinfobycode {
33         my ($self,$code) = @_;
34
35         my $path = "ferweb/$code";
36         return YAML::LoadFile $path if -e $path;
37
38         my $res = $users->send_request(
39                 'users.getinfobycode', $self->{login_id}, RPC::XML::string->new($code)
40         )->value;
41
42         print "[$code] = ", dump($res), $/;
43
44         YAML::DumpFile $path, $res;
45
46         return $res;
47 }
48
49 1;