File Coverage

blib/lib/WebService/Face/Response.pm
Criterion Covered Total %
statement 15 95 15.7
branch 0 16 0.0
condition n/a
subroutine 5 28 17.8
pod 23 23 100.0
total 43 162 26.5


line stmt bran cond sub pod time code
1             package WebService::Face::Response;
2              
3 6     6   91 use 5.006;
  6         19  
  6         213  
4 6     6   31 use strict;
  6         12  
  6         165  
5 6     6   31 use warnings;
  6         9  
  6         132  
6              
7 6     6   3509 use WebService::Face::Response::Photo;
  6         13  
  6         168  
8 6     6   19985 use WebService::Face::Response::Account;
  6         16  
  6         6098  
9              
10             =head1 NAME
11              
12             WebService::Face::Response
13              
14             =head1 VERSION
15              
16             Version 0.04
17              
18             =cut
19              
20             our $VERSION = '0.04';
21              
22             =head1 SYNOPSIS
23              
24             WebService::Face::Response wraps the data returned by the server response
25              
26             It provides a simple OO interface to access the data
27              
28             =head1 SUBROUTINES/METHODS
29              
30             =head2 new ( \%params )
31              
32             The WebService::Face::Response constructor
33              
34             Valid %params keys are currently :
35             photos
36             saved_tags
37             usage
38             limits
39             users
40             namespaces
41              
42             =cut
43              
44             sub new {
45 0     0 1   my $class = shift;
46 0           my $params = shift;
47              
48 0           my $self = bless {}, $class;
49              
50 0           for my $key ( keys %$params ) {
51 0           $self->{$key} = $params->{$key};
52             }
53              
54 0 0         if ( $params->{'photos'} ) {
55 0           my @photos;
56 0           for my $photo ( @{ $params->{photos} } ) {
  0            
57 0           push @photos, WebService::Face::Response::Photo->new($photo);
58             }
59 0           @{ $self->{photos} } = @photos;
  0            
60             }
61 0 0         if ( $params->{'saved_tags'} ) {
62 0           my @saved_tags;
63 0           for my $saved_tag ( @{ $params->{saved_tags} } ) {
  0            
64 0           push @saved_tags, $saved_tag;
65             }
66 0           @{ $self->{saved_tags} } = @saved_tags;
  0            
67             }
68              
69 0 0         if ( $params->{'usage'} ) {
70 0           $self->{'account'} = WebService::Face::Response::Account->new( $params->{'usage'} );
71 0           delete $self->{'usage'};
72             }
73              
74 0 0         if ( $params->{'users'} ) {
75 0           $self->{'account'} = WebService::Face::Response::Account->new($params);
76 0           delete $self->{'usage'};
77             }
78              
79 0 0         if ( $params->{'limits'} ) {
80 0           $self->{'account'} = WebService::Face::Response::Account->new( $params->{'limits'} );
81 0           delete $self->{'usage'};
82             }
83              
84 0 0         if ( $params->{'namespaces'} ) {
85 0           $self->{'account'} = WebService::Face::Response::Account->new($params);
86 0           delete $self->{'namespaces'};
87             }
88 0           return $self;
89             }
90              
91             =head2 status ()
92              
93             Getter for the 'status' attribute
94              
95             =cut
96              
97             sub status {
98 0     0 1   my $self = shift;
99              
100 0           return $self->{'status'};
101             }
102              
103             =head2 error_code ()
104              
105             Getter for the 'error_code' attribute
106              
107             =cut
108              
109             sub error_code {
110 0     0 1   my $self = shift;
111              
112 0           return $self->{'error_code'};
113             }
114              
115             =head2 error_message ()
116              
117             Getter for the 'error_message' attribute
118              
119             =cut
120              
121             sub error_message {
122 0     0 1   my $self = shift;
123              
124 0           return $self->{'error_message'};
125             }
126              
127             =head2 message ()
128              
129             Getter for the 'message' attribute
130              
131             =cut
132              
133             sub message {
134 0     0 1   my $self = shift;
135              
136 0           return $self->{'message'};
137             }
138              
139             =head2 photos ()
140              
141             Getter for the 'photos' attribute
142              
143             =cut
144              
145             sub photos {
146 0     0 1   my $self = shift;
147 0 0         $self->{'photos'} = [] unless $self->{'photos'};
148              
149 0           return @{ $self->{'photos'} };
  0            
150             }
151              
152             =head2 saved_tags ()
153              
154             Getter for the 'saved_tags' attribute
155              
156             =cut
157              
158             sub saved_tags {
159 0     0 1   my $self = shift;
160 0 0         $self->{'saved_tags'} = [] unless $self->{'saved_tags'};
161              
162 0           return @{ $self->{'saved_tags'} };
  0            
163             }
164              
165             =head2 url ()
166              
167             Getter for the 'url' attribute
168              
169             =cut
170              
171             sub url {
172 0     0 1   my $self = shift;
173              
174 0           return $self->{'url'};
175             }
176              
177             =head2 pid ()
178              
179             Getter for the 'pid' attribute
180              
181             =cut
182              
183             sub pid {
184 0     0 1   my $self = shift;
185              
186 0           return $self->{'pid'};
187             }
188              
189             =head2 width ()
190              
191             Getter for the 'width' attribute
192              
193             =cut
194              
195             sub width {
196 0     0 1   my $self = shift;
197              
198 0           return $self->{'width'};
199             }
200              
201             =head2 height ()
202              
203             Getter for the 'height' attribute
204              
205             =cut
206              
207             sub height {
208 0     0 1   my $self = shift;
209              
210 0           return $self->{'height'};
211             }
212              
213             =head2 tags ()
214              
215             Getter for the 'tags' attribute
216              
217             =cut
218              
219             sub tags {
220 0     0 1   my $self = shift;
221              
222 0           return $self->{'tags'};
223             }
224              
225             =head2 groups ()
226              
227             Getter for the 'groups' attribute
228              
229             =cut
230              
231             sub groups {
232 0     0 1   my $self = shift;
233              
234 0           return $self->{'groups'};
235             }
236              
237             =head2 tid ()
238              
239             Getter for the 'tid' attribute
240              
241             =cut
242              
243             sub tid {
244 0     0 1   my $self = shift;
245              
246 0           return $self->{'tid'};
247             }
248              
249             =head2 recognizable ()
250              
251             Getter for the 'recognizable' attribute
252              
253             =cut
254              
255             sub recognizable {
256 0     0 1   my $self = shift;
257              
258 0           return $self->{'recognizable'};
259             }
260              
261             =head2 threshold ()
262              
263             Getter for the 'threshold' attribute
264              
265             =cut
266              
267             sub threshold {
268 0     0 1   my $self = shift;
269              
270 0           return $self->{'threshold'};
271             }
272              
273             =head2 uids ()
274              
275             Getter for the 'uids' attribute
276              
277             =cut
278              
279             sub uids {
280 0     0 1   my $self = shift;
281              
282 0           return $self->{'uids'};
283             }
284              
285             =head2 label ()
286              
287             Getter for the 'label' attribute
288              
289             =cut
290              
291             sub label {
292 0     0 1   my $self = shift;
293              
294 0           return $self->{'label'};
295             }
296              
297             =head2 confirmed ()
298              
299             Getter for the 'confirmed' attribute
300              
301             =cut
302              
303             sub confirmed {
304 0     0 1   my $self = shift;
305              
306 0           return $self->{'confirmed'};
307             }
308              
309             =head2 manual ()
310              
311             Getter for the 'manual' attribute
312              
313             =cut
314              
315             sub manual {
316 0     0 1   my $self = shift;
317              
318 0           return $self->{'manual'};
319             }
320              
321             =head2 limits ()
322              
323             Getter for the 'limits' attribute
324              
325             =cut
326              
327             sub limits {
328 0     0 1   my $self = shift;
329              
330 0           return $self->account->limits;
331             }
332              
333             =head2 users ()
334              
335             Getter for the 'users' attribute
336              
337             =cut
338              
339             sub users {
340 0     0 1   my $self = shift;
341              
342 0           return $self->{'users'};
343             }
344              
345             =head2 account ()
346              
347             Getter for the 'account' attribute
348              
349             =cut
350              
351             sub account {
352 0     0 1   my $self = shift;
353              
354 0           return $self->{'account'};
355             }
356              
357             =head1 AUTHOR
358              
359             Arnaud (Arhuman) ASSAD, C<< >>
360              
361             =head1 BUGS
362              
363             Please report any bugs or feature requests to C< arhuman at gmail.com>, or through
364             the web interface at L. I will be notified, and then you'll
365             automatically be notified of progress on your bug as I make changes.
366              
367             =head1 SUPPORT
368              
369             You can find documentation for this module with the perldoc command.
370              
371             perldoc WebService::Face::Client
372              
373              
374             You can also look for information at:
375              
376             =over 4
377              
378             =item * Github repository
379              
380             L
381              
382             =item * AnnoCPAN: Annotated CPAN documentation
383              
384             L
385              
386             =item * CPAN Ratings
387              
388             L
389              
390             =back
391              
392             More information about Face.com service :
393              
394             L
395              
396              
397             =head1 ACKNOWLEDGEMENTS
398              
399             Thanks to Face.com for the service they provide.
400             Thanks to Jaguar Network for allowing me to publish my work.
401              
402             =head1 LICENSE AND COPYRIGHT
403              
404             Copyright 2012 Arnaud (Arhuman) ASSAD.
405              
406             This program is free software; you can redistribute it and/or modify it
407             under the terms of either: the GNU General Public License as published
408             by the Free Software Foundation; or the Artistic License.
409              
410             See http://dev.perl.org/licenses/ for more information.
411              
412              
413             =cut
414              
415             1;