fix errors for api to be json
This commit is contained in:
@@ -37,7 +37,7 @@ Whether the request should be interpreted as an API call.
|
||||
sub request_is_api {
|
||||
return (setting('api_token_lifetime')
|
||||
and request->accept =~ m/(?:json|javascript)/
|
||||
and index(request->path, uri_for('/api')->path) == 0);
|
||||
and index(var('orig_path'), uri_for('/api')->path) == 0);
|
||||
}
|
||||
|
||||
=head2 sql_match( $value, $exact? )
|
||||
|
||||
@@ -123,6 +123,11 @@ hook after_error_render => sub { setting('layout' => 'main') };
|
||||
for @port_columns;
|
||||
}
|
||||
|
||||
# support for checking if this is an api request even after forward
|
||||
hook 'before' => sub {
|
||||
vars->{'orig_path'} = request->path unless request->is_forward;
|
||||
};
|
||||
|
||||
hook 'before' => sub {
|
||||
my $key = request->path;
|
||||
if (param('tab') and ($key !~ m/ajax/)) {
|
||||
|
||||
@@ -4,7 +4,6 @@ use Dancer ':syntax';
|
||||
use Dancer::Plugin;
|
||||
|
||||
use App::Netdisco::Util::Web 'request_is_api';
|
||||
use Dancer::Plugin::REST 'status_bad_request';
|
||||
use Path::Class 'dir';
|
||||
|
||||
set(
|
||||
@@ -28,7 +27,9 @@ config->{engines}->{netdisco_template_toolkit}->{INCLUDE_PATH} ||= [ setting('vi
|
||||
register 'bang' => sub {
|
||||
if (request_is_api()) {
|
||||
content_type('application/json');
|
||||
status_bad_request(@_);
|
||||
set serializer => 'JSON';
|
||||
status $_[1];
|
||||
{ error => $_[0] };
|
||||
}
|
||||
else { send_error(@_) }
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user