App-Spoor
view release on metacpan or search on metacpan
lib/App/Spoor/TransmissionFormatter.pm view on Meta::CPAN
package App::Spoor::TransmissionFormatter;
use v5.10;
use strict;
use warnings;
=head1 NAME
App::Spoor::TransmissionFormatter
=head1 VERSION
Version 0.01
=cut
our $VERSION = '0.01';
=head1 SYNOPSIS
Transforms the format of an item so that it is suitable for submission to the Spoor API.
=head1 SUBROUTINES
=head2 format
Takes a hash representation of a hash as input and returns an entry converted into a format suitable for submission to
the Spoor API.
use Sys::Hostname;
my $host = hostname;
my %login_entry = (
type => 'login',
event => 'login',
log_time => DateTime->new(
year => 2018,
month => 9,
day => 19,
hour => 16,
minute => 2,
second => 36,
time_zone => '+0000'
)->epoch(),
scope => 'webmaild',
ip => '10.10.10.10',
credential => 'rorymckinley@blah.capefox.co',
possessor => 'blahuser',
status => 'success',
context => 'foobar'
);
$formatted_entry = App::Spoor::TransmissionFormatter.format(\%login_entry, $host);
=cut
sub format {
my $entry = shift;
my $host = shift;
if($entry->{event} eq 'login') {
{
type => $entry->{event},
time => $entry->{log_time},
ip => $entry->{ip},
mailbox_address => $entry->{credential},
context => $entry->{context},
host => $host
}
} elsif($entry->{event} eq 'forward_added_partial_ip') {
{
type => $entry->{event},
time => $entry->{log_time},
ip => $entry->{ip},
mailbox_address => $entry->{credential},
context => $entry->{context},
host => $host
}
} elsif($entry->{event} eq 'forward_added_partial_recipient') {
{
type => $entry->{event},
time => $entry->{log_time},
mailbox_address => $entry->{email},
forward_recipient => $entry->{forward_to},
context => $entry->{context},
host => $host
}
} elsif($entry->{event} eq 'forward_removed') {
{
type => $entry->{event},
time => $entry->{log_time},
mailbox_address => $entry->{credential},
forward_recipient => $entry->{forward_recipient},
ip => $entry->{ip},
context => $entry->{context},
host => $host
( run in 0.596 second using v1.01-cache-2.11-cpan-d8267643d1d )