
use strict;
use WWW::Mechanize;
use Data::Show;
use DateTime;
use Net::Amazon::S3;
use DateTime::Format::Strptime;
use MIME::Lite;

my $mech = WWW::Mechanize->new(cookie_jar => {}, agent => 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko');

my $dt = DateTime->now(time_zone => 'America/Chicago');
my $dt2 = DateTime->now(time_zone => 'America/Chicago');
$dt2->subtract(months => 2);
my $fromEvtMonth = $dt2->year . sprintf("%02d", $dt2->month);
$dt2->add(months => 3);
my $toEvtMonth = $dt2->year . sprintf("%02d", $dt2->month);


# # get inital cookies
my $resp1 = $mech->get('https://everify.dmadelivers.com/login_spa.jsp');
my $resp2 = $mech->post('https://everify.dmadelivers.com/start?user=astubbs&configuration=demo_main.xml&nextPage=kpiAnalysis.jsp&adminPage=adminHeader.jsp&AdminLogin=yes&errorPage=login.jsp&noSectors=nosectors.jsp&noEtl=noEtl.jsp&context=arc&etlStatus=etlStatus.jsp&adminChk=false&calMonth=&calYear=&hdnBrowserType=&hdnLoginsrcFrom=loginBtn&SELECTED_USER_CONNNECTION=&lang=English&radio=checkbox&user=astubbs&user=&pwd=epN1PzCY&pwd=');
my $resp3 = $mech->post('https://everify.dmadelivers.com/massController?nav_action=EXPORT_CONTRACT', content => {
	fromEvtMonth => $fromEvtMonth,
	toEvtMonth => $toEvtMonth
});

# if ($resp3->is_success) {
#     show $resp3->decoded_content;
# }




my $s3 = Net::Amazon::S3->new({   
	aws_access_key_id     => 'AKIAIADRFC6ZYL3DXPLA',
    aws_secret_access_key  => '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'
});
my $response = $s3->buckets;
my $bucket = $s3->bucket('dma-uploads');
my $resp = $bucket->list() or die $s3->err . ": " . $s3->errstr;

my $strp = DateTime::Format::Strptime->new(
	# 2019-03-19T15:24:43.000Z
    pattern   => '%FT%T.000Z',
);
my $s3file;
my $ldtsort;
my $lastmodified;
foreach my $k (@{ $resp->{keys} }){
	next if $k->{key} !~ /^everifys3/;
	my $dt = $strp->parse_datetime($k->{last_modified});
	my $dtsort = $dt->ymd('') . $dt->hms('');
	$ldtsort ||= $dtsort;
	if($dtsort > $ldtsort){
		$s3file = $k->{key};
		$ldtsort = $dtsort;
		$lastmodified = $k->{last_modified};
	}
}

my $subject = 'DMA eVerify Export Contract FAILED: ' . $dt->ymd('-') . ' ' . $dt->hms(':');
if($dt->ymd('') == $strp->parse_datetime($lastmodified)->ymd('') || $resp3->decoded_content =~ /SUCCESS/i){
	$subject = 'DMA eVerify Export Contract SUCCESS: ' . $dt->ymd('-') . ' ' . $dt->hms(':');
}

show $s3file;

my $msg = MIME::Lite->new(
	From     => 'root@dmadelivers.com',
	#To => 'matt.kot@dmadelivers.com,opfftp@dmadelivers.com',
	To => 'everifysupport@dmadelivers.com',
	#To => 'dma@ace4it.com',
	Bcc => 'dma@ace4it.com,matt.kot@dmadelivers.com',
    	Subject  => $subject,
	Type => 'text/plain',
	Data => "$s3file Last Export File" . "\n" . ($resp3->is_success ? $resp3->decoded_content : $resp3->status_line)
);
$msg->send;



# {"SUCCESS":"Contracts Exported Successfully."}
