File Coverage

lib/API/ParallelsWPB/Requests.pm
Criterion Covered Total %
statement 75 87 86.2
branch 5 10 50.0
condition 8 18 44.4
subroutine 22 26 84.6
pod 21 21 100.0
total 131 162 80.8


line stmt bran cond sub pod time code
1             package API::ParallelsWPB::Requests;
2              
3 4     4   26 use strict;
  4         9  
  4         135  
4 4     4   23 use warnings;
  4         7  
  4         121  
5              
6 4     4   18 use Carp;
  4         7  
  4         317  
7              
8              
9             use constant {
10 4         6678 DEFAULT_LOCALE_CODE => 'en_US',
11             DEFAULT_TEMPLATE_CODE => 'generic',
12             DEFAULT_CREATE_SITE_STATE => 'trial',
13             DEFAULT_SESSIONLIFETIME => '1800',
14 4     4   23 };
  4         7  
15              
16             # ABSTRACT: processing of API requests
17              
18             our $VERSION = '0.03'; # VERSION
19             our $AUTHORITY = 'cpan:IMAGO'; # AUTHORITY
20              
21              
22             sub get_version {
23 1     1 1 1329 my ( $self ) = @_;
24              
25 1         13 return $self->f_request( [qw/ system version /], { req_type => 'get' } );
26             }
27              
28              
29             sub create_site {
30 1     1 1 14 my ( $self, %param ) = @_;
31              
32 1   50     5 $param{state} ||= DEFAULT_CREATE_SITE_STATE;
33 1   50     8 $param{publicationSettings} ||= {};
34 1   50     7 $param{ownerInfo} ||= {};
35 1   50     8 $param{isPromoFooterVisible} ||= '';
36              
37 1         6 my $post_array = [ {
38             state => $param{state},
39             publicationSettings => $param{publicationSettings},
40             ownerInfo => $param{ownerInfo},
41             isPromoFooterVisible => $param{isPromoFooterVisible}
42             } ];
43              
44 1         7 my $res = $self->f_request(
45             ['sites'],
46             {
47             req_type => 'post',
48             post_data => $post_array,
49             }
50             );
51              
52 1         7 my $uuid = $res->response;
53 1 50       3 if ( $uuid ) {
54 1         4 $self->{uuid} = $uuid;
55             }
56             else {
57 0         0 carp "parameter uuid not found";
58             }
59              
60 1         5 return $res;
61             }
62              
63              
64             sub gen_token {
65 1     1 1 2877 my ( $self, %param ) = @_;
66              
67 1   50     11 $param{localeCode} ||= DEFAULT_LOCALE_CODE;
68 1   50     9 $param{sessionLifeTime} ||= DEFAULT_SESSIONLIFETIME;
69              
70 1         5312 my $uuid = $self->_get_uuid( %param );
71              
72 1         19 return $self->f_request(
73             [ 'sites', $uuid, 'token' ],
74             {
75             req_type => 'post',
76             post_data => [
77             {
78             localeCode => $param{localeCode},
79             sessionLifeTime => $param{sessionLifeTime},
80             } ],
81             }
82             );
83             }
84              
85              
86             sub deploy {
87 1     1 1 5098 my ( $self, %param ) = @_;
88              
89 1   33     23 $param{localeCode} ||= $self->DEFAULT_LOCALE_CODE;
90 1   33     16 $param{templateCode} ||= $self->DEFAULT_TEMPLATE_CODE;
91 1         7 my $siteuuid = $self->_get_uuid( %param );
92              
93 1         4 my @post_data = map { $param{$_} } qw/templateCode localeCode title/;
  3         10  
94              
95 1         19 return $self->f_request(
96             [ 'sites', $siteuuid, 'deploy' ],
97             {
98             req_type => 'post',
99             post_data => \@post_data
100             }
101             );
102             }
103              
104              
105              
106             sub get_site_info {
107 1     1 1 8374 my ( $self, %param ) = @_;
108              
109 1         8 my $uuid = $self->_get_uuid( %param );
110              
111 1         10 return $self->f_request( [ 'sites', $uuid ], { req_type => 'get' } );
112             }
113              
114              
115              
116             sub get_sites_info {
117 1     1 1 5691 my ( $self ) = @_;
118              
119 1         11 return $self->f_request( [qw/ sites /], { req_type => 'get' } );
120             }
121              
122              
123             sub change_site_properties {
124 1     1 1 5570 my ( $self, %param ) = @_;
125              
126 1         8 my $uuid = $self->_get_uuid( %param );
127 1         10 return $self->f_request(
128             [ 'sites', $uuid ],
129             {
130             req_type => 'put',
131             post_data => [\%param]
132             }
133             );
134             }
135              
136              
137              
138             sub publish {
139 1     1 1 6741 my ( $self, %param ) = @_;
140              
141 1         8 my $uuid = $self->_get_uuid( %param );
142 1         10 return $self->f_request(
143             [ 'sites', $uuid, 'publish' ],
144             {
145             req_type => 'post',
146             }
147             );
148             }
149              
150              
151              
152             sub delete_site {
153 1     1 1 7045 my ( $self, %param ) = @_;
154              
155 1         7 my $uuid = $self->_get_uuid( %param );
156              
157 1         219 return $self->f_request( [ 'sites', $uuid ], { req_type => 'delete' } );
158             }
159              
160              
161              
162             sub get_promo_footer {
163 1     1 1 3995 my ( $self ) = @_;
164              
165 1         11 return $self->f_request( [qw/ system promo-footer /],
166             { req_type => 'get' } );
167             }
168              
169              
170             sub get_site_custom_variable {
171 1     1 1 2903 my ( $self, %param ) = @_;
172              
173 1         7 my $uuid = $self->_get_uuid( %param );
174              
175 1         10 return $self->f_request( [ 'sites', $uuid, 'custom-properties' ], { req_type => 'get' } );
176             }
177              
178              
179             sub set_site_custom_variable {
180 1     1 1 2867 my ( $self, %param ) = @_;
181              
182 1         5 my $uuid = $self->_get_uuid( %param );
183              
184 1 50       5 delete $param{uuid} if ( exists $param{uuid} );
185 1         10 return $self->f_request( [ 'sites', $uuid, 'custom-properties' ],
186             {
187             req_type => 'put',
188             post_data => [ \%param ],
189             }
190             );
191             }
192              
193              
194             sub get_sites_custom_variables {
195 2     2 1 4700 my ( $self ) = @_;
196              
197 2         14 return $self->f_request( [qw/ system custom-properties /],
198             { req_type => 'get' } );
199             }
200              
201              
202             sub set_sites_custom_variables {
203 1     1 1 2495 my ( $self, %param ) = @_;
204              
205 1         11 return $self->f_request( [ qw/ system custom-properties / ],
206             {
207             req_type => 'put',
208             post_data => [ \%param ],
209             }
210             );
211             }
212              
213              
214             sub set_custom_trial_messages {
215 1     1 1 2246 my ( $self, @param ) = @_;
216              
217 1         8 return $self->f_request( [ qw/ system trial-mode messages / ],
218             {
219             req_type => 'put',
220             post_data => [ \@param ]
221             }
222             );
223             }
224              
225              
226             sub get_custom_trial_messages {
227 1     1 1 2116 my ( $self ) = @_;
228              
229 1         8 return $self->f_request( [qw/ system trial-mode messages /],
230             { req_type => 'get' } );
231             }
232              
233              
234             sub change_promo_footer {
235 1     1 1 2298 my ( $self, %param ) = @_;
236              
237 1 50       6 confess "Required parameter message!" unless ( $param{message} );
238              
239 1         14 return $self->f_request( [ qw/ system promo-footer / ],
240             {
241             req_type => 'put',
242             post_data => [ $param{message} ],
243             }
244             );
245             }
246              
247              
248             sub set_site_promo_footer_visible {
249 0     0 1 0 my ( $self, %param ) = @_;
250              
251 0         0 my $uuid = $self->_get_uuid( %param );
252              
253 0         0 return $self->f_request( [ 'sites', $uuid ], {
254             req_type => 'put',
255             post_data => [ { isPromoFooterVisible => 'true' } ],
256             }
257             );
258             }
259              
260              
261             sub set_site_promo_footer_invisible {
262 0     0 1 0 my ( $self, %param ) = @_;
263              
264 0         0 my $uuid = $self->_get_uuid( %param );
265              
266 0         0 return $self->f_request( [ 'sites', $uuid ], {
267             req_type => 'put',
268             post_data => [ { isPromoFooterVisible => 'false' } ],
269             }
270             );
271             }
272              
273              
274              
275             sub set_limits {
276 0     0 1 0 my ( $self, %param ) = @_;
277              
278 0         0 my $uuid = $self->_get_uuid( %param );
279              
280 0         0 return $self->f_request( [ 'sites', $uuid, 'limits' ], {
281             req_type => 'put',
282             post_data => [ \%param ],
283             }
284             );
285             }
286              
287              
288             sub configure_buy_and_publish_dialog {
289 0     0 1 0 my ( $self, $params ) = @_;
290              
291 0         0 return $self->f_request(['system', 'trial-mode', 'messages'], {req_type => 'put', post_data => [ $params ]});
292              
293             }
294              
295             sub _get_uuid {
296 8     8   39 my ( $self, %param ) = @_;
297              
298 8 50       43 my $uuid = $param{uuid} ? $param{uuid} : $self->{uuid};
299 8 50       36 confess "Required parameter uuid!" unless ( $uuid );
300              
301 8         27 return $uuid;
302             }
303              
304              
305             1;
306              
307             __END__