#! /usr/bin/perl use strict; use warnings; no warnings 'redefine'; use Data::Dumper; use JSON(); use config(); use params(); use log(); use entry(); use auth(); use localization(); binmode STDOUT, ":utf8"; my $r = shift; ( my $cgi, my $params, my $error ) = params::get($r); my $config = config::get('../config/config.cgi'); my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( $user eq '' ); my $request = { url => $ENV{QUERY_STRING} || '', params => { original => $params, checked => check_params( $config, $params ), } }; $params = $request->{params}->{checked}; my $loc = localization::get( $config, { user => $user, file => $params->{usecase} } ); my $header = "Content-type:application/json; charset=UTF-8;\n\n"; $loc->{usecase} = $params->{usecase}; my $json = JSON::to_json( $loc, { pretty => 1 } ); my @json_lines = (); for my $line ( split /\n/, $json ) { push @json_lines, "'" . $line . "'\n"; } $json = $header . $json; print $json; sub check_params { my $config = shift; my $params = shift; my $checked = { usecase => '' }; if ( defined $params->{usecase} ) { if ( $params->{usecase} =~ /^([a-z\-\_\,]+)$/ ) { $checked->{usecase} = $1; } } return $checked; }