package NCIPResponder;
use Modern::Perl;
use NCIP;

use FileHandle;

use Apache2::Const -compile => qw(OK :log :http :methods :cmd_how :override);
use Apache2::RequestRec ();
use Apache2::RequestIO ();

sub handler {
    my $r = shift;

    return Apache2::Const::HTTP_METHOD_NOT_ALLOWED unless $r->method_number eq Apache2::Const::M_POST;

    my $NCIPConfigFile = $r->dir_config('NCIPConfigFile');

    if (!defined($NCIPConfigFile)) {
        die sprintf "error: There is no NCIPConfigFile defined\n";
    } else {
        if (! (-r $NCIPConfigFile)) {
            die sprintf "error: NCIPConfigFile %s does not exist or is not readable\n", $NCIPConfigFile;
        }
    }

    my $ncip = NCIP->new($NCIPConfigFile);

    $r->content_type('text/html');
    my $tmp_buf;
    my $input_xml;

    while ($r->read($tmp_buf, 1024)) {
        $input_xml .= $tmp_buf;
    }

    my $response_xml = $ncip->process_request($input_xml);

    $r->print($response_xml);
    return Apache2::Const::OK;
}

1;
