5.20.0;
use strict;
use warnings;
require feature;
use Import::Into;
use Carp;
use English;
use JSON;
use Types::Standard;
use Type::Utils;
use open ':std', ':encoding(UTF-8)';
sub import {
str
:Utils->import::into(scalar caller, qw{ class_type } );
English->import::into(scalar caller);
JSON->import::into(scalar caller);
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
Mail::TLSRPT::P
contents);
$tlsrpt = eval{ Mail::TLSRPT::Report->new_from_json($payload) };
$tlsrpt //= eval{ Mail::TLSRPT::Report->new_from_json_gz($payload) };
if ( $tlsrpt ) {
$tlsrpt->process
my $payload = join('',@file_contents);
my $tlsrpt = eval{ Mail::TLSRPT::Report->new_from_json($payload) };
my $error = $@;
if ( $tlsrpt ) {
push @all_output, $tlsrpt->as_csv(
;
}
sub new_from_json($class,$json) {
if ( $json =~ /^\037\213/ ) {
return $class->new_from_json_gz($json);
}
my $j = JSON->new;
my $data = $j->decode($json);
return $cla
ata($data);
}
sub new_from_json_gz($class,$compressed_json) {
my $json;
IO::Uncompress::Gunzip::gunzip(\$compressed_json,\$json);
return $class->new_from_json($json);
}
sub new_from_data($cl
->{'report-id'},
policies => \@policies,
);
return $self;
}
sub as_json($self) {
my $j = JSON->new;
$j->canonical;
return $j->encode( $self->as_struct );
}
sub as_struc