The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package Zonemaster::GUI::Dancer::Export;

use warnings;
use 5.14.2;

use Dancer ':syntax';
use Plack::Builder;
use HTML::Entities;
use Zonemaster::GUI::Dancer::Client;

our $VERSION = '1.0.7';

my $backend_port = 5000;
$backend_port = $ENV{ZONEMASTER_BACKEND_PORT} if ($ENV{ZONEMASTER_BACKEND_PORT});
my $url = "http://localhost:$backend_port";

any [ 'get', 'post' ] => '/export' => sub {
    header( 'Cache-Control' => 'no-store, no-cache, must-revalidate' );
    my %allparams = params;
    no warnings 'uninitialized';

    if ( $allparams{'type'} eq 'HTML' ) {
		my $c = Zonemaster::GUI::Dancer::Client->new( { url => $url } );
		my $test_result = $c->get_test_results( { id => $allparams{'test_id'}, language => $allparams{'lang'} } );

		my @test_results;
		my $previous_module = '';
		foreach my $result ( @{ $test_result->{results} } ) {
			if ( $previous_module ne $result->{module} ) {
				push( @test_results, { is_module => 1, message => $result->{module} } );
				$previous_module = $result->{module};
			}

			push( @test_results, { is_module => 0, message => $result->{message}, class => "alert alert-$result->{level}" } );
		}

		my $template_params;
		$template_params->{test_results}  = \@test_results;
		template 'export', $template_params, { layout => undef };
    }
};

true;