File Coverage

blib/lib/WebService/Advogato.pm
Criterion Covered Total %
statement 4 6 66.6
branch n/a
condition n/a
subroutine 2 2 100.0
pod n/a
total 6 8 75.0


line stmt bran cond sub pod time code
1             package WebService::Advogato;
2              
3 1     1   21252 use Carp;
  1         3  
  1         92  
4 1     1   412 use RPC::XML ':types';
  0            
  0            
5             use RPC::XML::Client;
6             use strict;
7             use vars qw($VERSION);
8              
9             $VERSION = '1.1.0';
10              
11             #
12             # $Id: Advogato.pm,v 1.2 2004/04/04 06:29:10 jaldhar Exp $
13             #
14              
15             sub new()
16             {
17             my ($proto, $user, $pass) = @_;
18              
19             my $class = ref($proto) || $proto;
20             my $self = {
21             'client' => RPC::XML::Client->new('http://www.advogato.org/XMLRPC'),
22             'user' => $user || '',
23             'pass' => $pass || '',
24             };
25             bless($self, $class);
26             return $self;
27             }
28              
29             sub _authenticate()
30             {
31             my ($self) = @_;
32              
33             my $result = $self->{'client'}->send_request('authenticate',
34             RPC_STRING($self->{'user'}), RPC_STRING($self->{'pass'}));
35             croak $result unless ref $result;
36             croak $result->code . ': ' . $result->string
37             if ref $result eq 'RPC::XML::fault';
38             $self->{'cookie'} = $result->value;
39             }
40              
41             sub _call()
42             {
43             my ($self, $method, @args) = @_;
44              
45             my $ result = $self->{'client'}->send_request($method, @args);
46             croak $result unless defined($result);
47             croak $result->code . ': ' . $result->string if $result->is_fault;
48             return $result->value;
49             }
50              
51             sub capitalize($)
52             {
53             my ($self, $x) = @_;
54              
55             return $self->_call('test.capitalize', RPC_STRING($x));
56             }
57              
58             sub exists($)
59             {
60             my ($self, $user) = @_;
61              
62             return $self->_call('user.exists', RPC_STRING($user));
63             }
64              
65             sub get($$)
66             {
67             my ($self, $user, $index) = @_;
68              
69             return $self->_call('diary.get', RPC_STRING($user), RPC_INT($index));
70             }
71              
72             sub getDates($$)
73             {
74             my ($self, $user, $index) = @_;
75              
76             return @{$self->_call('diary.getDates', RPC_STRING($user), RPC_INT($index))};
77             }
78              
79             sub guess()
80             {
81             my ($self) = @_;
82              
83             return @{$self->_call('test.guess')};
84             }
85              
86             sub len($)
87             {
88             my ($self, $user) = @_;
89              
90             return $self->_call('diary.len', RPC_STRING($user));
91             }
92              
93             sub level($)
94             {
95             my ($self, $user) = @_;
96              
97             return $self->_call('cert.get', RPC_STRING($user));
98             }
99              
100             sub set($$)
101             {
102             my ($self, $index, $html) = @_;
103              
104             $self->_authenticate() unless $self->{'cookie'};
105             return $self->_call('diary.set', RPC_STRING($self->{'cookie'}),
106             RPC_INT($index), RPC_STRING($html));
107             }
108              
109             sub square($)
110             {
111             my ($self, $x) = @_;
112              
113             return $self->_call('test.square', RPC_INT($x));
114             }
115              
116             sub strlen($)
117             {
118             my ($self, $str) = @_;
119              
120             return $self->_call('test.strlen', RPC_STRING($str));
121             }
122              
123             sub sumprod($$)
124             {
125             my ($self, $x, $y) = @_;
126              
127             return @{$self->_call('test.sumprod', RPC_INT($x), RPC_INT($y))};
128             }
129              
130             1;
131              
132             __END__