diff options
author | Kristian Lyngstol <kly@kly.no> | 2016-03-12 16:13:31 +0000 |
---|---|---|
committer | Kristian Lyngstol <kly@kly.no> | 2016-03-12 16:13:31 +0000 |
commit | 8b22ddd85a92eddadd679ac1e51fe1792defb241 (patch) | |
tree | a12aba850f950f894c3f4766cc9e1f14d48518d8 | |
parent | 3877f4d3a4389050250aa34474cabee6826f208f (diff) |
NMS: Do URL decoding and ISO 8601 time formating
Finally found something that lacks correctness in postgres.
-rwxr-xr-x | include/nms/web.pm | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/include/nms/web.pm b/include/nms/web.pm index ddc1be0..0f37a59 100755 --- a/include/nms/web.pm +++ b/include/nms/web.pm @@ -7,8 +7,9 @@ use DBI; use Data::Dumper; use JSON; use nms; -use Digest::SHA qw(sha512_base64); -use FreezeThaw qw(freeze); +use Digest::SHA; +use FreezeThaw; +use URI::Escape; package nms::web; use base 'Exporter'; @@ -58,9 +59,6 @@ sub setwhen { $now = db_safe_quote('now') . "::timestamp "; $cc{'max-age'} = "3600"; } - if (defined($get_params{'offset'})) { - $now = "(" . $now . " - " . db_safe_quote('offset') . "::interval)"; - } $when = " time > " . $now . " - '5m'::interval and time < " . $now . " "; return $when; } @@ -68,7 +66,7 @@ sub setwhen { sub finalize_output { my $query; my $hash = Digest::SHA::sha512_base64(FreezeThaw::freeze(%json)); - $query = $dbh->prepare ('select ' . $now . ' as time;'); + $query = $dbh->prepare('select to_char(' . $now . ', \'YYYY-MM-DD"T"HH24:MI:SS\') as time;'); $query->execute(); $json{'time'} = $query->fetchrow_hashref()->{'time'}; @@ -81,9 +79,10 @@ sub finalize_output { } sub populate_params { - foreach my $hdr (split("&",$ENV{'QUERY_STRING'} || "")) { + my $querystring = $ENV{'QUERY_STRING'} || ""; + foreach my $hdr (split("&",$querystring)) { my ($key, $value) = split("=",$hdr,"2"); - $get_params{$key} = $value; + $get_params{$key} = URI::Escape::uri_unescape($value); } } |