#! /usr/bin/perl

use strict;
use warnings;
use Term::ReadLine;

use Finance::Bank::Cahoot;
use Finance::Bank::Cahoot::CredentialsProvider::Callback;

my $term = new Term::ReadLine;
my %callbacks = (account => sub { return '12345678' },
		 password => sub {
		   return $term->readline("Enter character $_[0] of password: ")
		 },
		 place => sub {
		   return $term->readline('Enter memorable place: ')
		 },
		 date => sub {
		   return $term->readline('Enter memorable date: ')
		 },
		 username => sub { return 'acmeuser' },
		 maiden => sub {
		   return $term->readline('Enter mother\'s maiden name: ')
		 }
		 );
my $credentials = Finance::Bank::Cahoot::CredentialsProvider::Callback->new(%callbacks);
my $cahoot = Finance::Bank::Cahoot->new(credentials => $credentials);
$cahoot->login;

foreach my $account ($cahoot->accounts) {
  next unless $account->{name} =~ /current/;
  $cahoot->set_account($account->{account});
}

my $statements = $cahoot->statements;
$cahoot->set_statement($statements->[-1]->{description});
my $statement = $cahoot->statement;
foreach my $row (@$statement) {
  print join ',', @$row; print "\n";
}
