Ignore:
Timestamp:
Jul 4, 2009, 12:09:47 AM (15 years ago)
Author:
ronosman
Message:

Bug 1030 fixed : catch communication error with Piwigo site. The Piwigo method return status is checked after checking HTTP response status.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/pLoader/trunk/src/Uploader/PWG/WebServices.pm

    r3504 r3509  
    236236
    237237sub UploadImage {
    238     my ( $self ) = @_;
     238    my ( $self, $yield_callback ) = @_;
    239239
    240240    my $file_sum;
     
    279279    my $status = 0;
    280280    my $status_line = "An error has occured during upload.";
     281    my $content = {};
    281282    while(1){
    282283        if(!defined($image_id)){
     
    286287                type => 'file',
    287288                original_sum => $original_sum,
     289                yield_callback => $yield_callback,
    288290            };
    289291   
     
    291293                $resized_params
    292294            );
    293            
     295
     296            $yield_callback->() if 'CODE' eq ref($yield_callback);
    294297            $status_line = $resized_params->{message};
    295298            last if !$resized_params->{ok};
     
    299302                type => 'thumb',
    300303                original_sum => $original_sum,         
     304                yield_callback => $yield_callback,
    301305            };
    302306   
     
    305309            );
    306310
     311            $yield_callback->() if 'CODE' eq ref($yield_callback);
    307312            $status_line = $thumb_params->{message};
    308313            last if !$thumb_params->{ok};
     
    327332                type => 'high',
    328333                original_sum => $original_sum,
     334                yield_callback => $yield_callback,
    329335            };
    330336   
     
    335341                    $high_params
    336342                );
     343                $yield_callback->() if 'CODE' eq ref($yield_callback);
    337344
    338345                $status_line = $high_params->{message};
     
    353360                tag_ids           => $self->site_tags,
    354361            };
     362            $yield_callback->() if 'CODE' eq ref($yield_callback);
    355363        }
    356364   
     
    359367            $form
    360368        );
     369
     370        eval {
     371            $content = from_json(
     372                $result->content
     373            );
     374        };
     375
    361376   
    362377        $status = $result->is_success;
    363378        $status_line = $result->status_line;
     379
    364380        last;
    365381    }
    366382   
    367     return ( $status,  $status_line);
     383    return ( $status,  $status_line, $content);
    368384}
    369385 
     
    454470            }
    455471        );
    456 
     472        $params->{yield_callback}->() if 'CODE' eq ref($params->{yield_callback});
    457473        $params->{ok} = 1;
    458474        if ($response->code != 200) {
Note: See TracChangeset for help on using the changeset viewer.