<%doc>
/rest autohandler - Deals with the different nature of the REST interface
</%doc>
<%args>
$user    => $ui->get_current_user($r);
$manager => $ui->get_permission_manager($r);
</%args>
<%init>

# Remove unnecessary headers
$m->clear_buffer;

my $DEBUG = 0;
if ( $DEBUG ){
    print '%ARGS is  <pre>', Dumper(%ARGS), '</pre><br>';
    print "req comp: ", $m->request_comp->name, "<br>";
    print "URI: ", $r->uri, "<br>";
    print "content_type : ", $r->content_type, "<br>";
    print "user: ", $user, "<br>";
    print "manager: ", $manager, "<br>";
}

# Make sure we have this information for every user
$ui->get_allowed_objects($r, $user) if $user;

eval {
    $m->call_next(user=>$user, manager=>$manager);
};

my $e;
if ( $e = Netdot::Util::Exception->caught('Netdot::Util::Exception::REST') ){
    $m->clear_and_abort($e->code);
}elsif ( $e = $@ ){
    die $e;
}

</%init>
