package RDAS::Fetcher::Mechanize::RedirectURL;

use Data::Dumper;
use URI::Escape;

use lib '/app/tools/common/lib';
use Common::Assert;

use lib '/app/tools/rdas/lib';
use base 'RDAS::Fetcher::Mechanize';

sub fetch {
    my $self = shift;

    assert( $self->url, "URL Required" );

    $self->{_success}   = undef;
    $self->{_errorCode} = undef;

    my $mech = $self->_getMechObject();
    $mech->agent( $self->userAgent() );

    Log->info( "Fetching content from: " . $self->url );
    die "Failed fetch" unless ( $mech->get( $self->url ) );

    if ( $mech->status == 302 ) {
        my $location = $mech->res->header('location');
        Log->debug("Header location: $location");

        $self->{_content} = $location;
        $self->{_success} = 1;
        return $self->content();
    } else {
        $self->{_errorCode} = $mech->status();
        Log->warn( "Fetch status not 302: " . $self->errorCode );
        return;
    }

}

1;
