Add query string encoding & decoding functions
This commit is contained in:
parent
90cfd66069
commit
67e6d99f01
5 changed files with 120 additions and 15 deletions
22
FU.pm
22
FU.pm
|
|
@ -526,7 +526,25 @@ sub method { $FU::REQ->{method} }
|
|||
sub header($, $h) { $FU::REQ->{hdr}{ lc $h } }
|
||||
sub headers { $FU::REQ->{hdr} }
|
||||
sub ip { $FU::REQ->{ip} }
|
||||
sub query { $FU::REQ->{qs} } # TODO: parse & validate
|
||||
|
||||
sub query {
|
||||
return $FU::REQ->{qs} if @_ == 1;
|
||||
$FU::REQ->{qs_parsed} ||= eval { FU::Util::query_decode($FU::REQ->{qs}) } || fu->error(400, $@);
|
||||
# TODO: Also accept schema validation thing.
|
||||
$FU::REQ->{qs_parsed}{$_[1]};
|
||||
}
|
||||
|
||||
sub formdata {
|
||||
$FU::REQ->{formdata} ||= eval {
|
||||
# TODO: Support multipart encoding
|
||||
confess "Invalid content type for form data"
|
||||
if (fu->header('content-type')||'') ne 'application/x-www-form-urlencoded';
|
||||
FU::Util::query_decode($FU::REQ->{data});
|
||||
} || fu->error(400, $@);
|
||||
# TODO: Accept schema validation thing.
|
||||
$FU::REQ->{formdata}{$_[1]};
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -664,7 +682,7 @@ can be used independently of the framework:
|
|||
|
||||
=over
|
||||
|
||||
=item * L<FU::Util> - JSON parsing & formatting.
|
||||
=item * L<FU::Util> - JSON parsing & formatting, URI encoding, etc.
|
||||
|
||||
=item * L<FU::Pg> - PostgreSQL client.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue