From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

#
# This file is part of CatalystX-ExtJS-Direct
#
# This software is Copyright (c) 2014 by Moritz Onken.
#
# This is free software, licensed under:
#
# The (three-clause) BSD License
#
$CatalystX::TraitFor::Request::ExtJS::VERSION = '2.1.5';
# ABSTRACT: Sets the request method via a query parameter
#has 'is_ext_upload' => ( isa => 'Bool', is => 'rw', lazy_build => 1 );
sub is_ext_upload {
my ($self) = @_;
return $self->header('Content-Type')
&& $self->header('Content-Type') =~ /^multipart\/form-data/
&& ( !$self->{content_type} || $self->{content_type} ne 'application/json');
}
around 'method' => sub {
my ( $orig, $self, $method ) = @_;
return $self->$orig($method) if($method);
return $self->query_params->{'x-tunneled-method'} || $self->$orig();
};
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
CatalystX::TraitFor::Request::ExtJS - Sets the request method via a query parameter
=head1 VERSION
version 2.1.5
=head1 METHODS
=head2 is_extjs_upload
Returns true if the current request looks like a request from ExtJS and has
multipart form data, so usually an upload.
=head1 AUTHOR
Moritz Onken <onken@netcubed.de>
=head1 COPYRIGHT AND LICENSE
This software is Copyright (c) 2014 by Moritz Onken.
This is free software, licensed under:
The (three-clause) BSD License
=cut