package RSApache::Response::Redirect;

use strict;
use warnings;
use Data::Dumper;

use RSApache::Response;
use base 'RSApache::Response';

use Apache2::Const qw(REDIRECT HTTP_MOVED_PERMANENTLY);
use CGI;

sub _init {
    my ( $self, $redirectURL ) = @_;

    $self->{redirectURL} = $redirectURL;
}

sub respond {
    my ( $self, $apache ) = @_;

    # If the original query had a ReturnTo parameter, we want to override
    # the url we were constructed with, and go there instead.
    #
    my $cgi = new CGI;
    if ( $cgi->param("ReturnTo") ) {
        $self->{redirectURL} = $cgi->param("ReturnTo");
    }

    $apache->status(REDIRECT);
    $apache->header_out( 'Location' => $self->{redirectURL} );
    $apache->send_http_header();

    return REDIRECT;
}

###
1;    # Play nicely.
###

