AWS-Lambda-Quick

 view release on metacpan or  search on metacpan

lib/AWS/Lambda/Quick/Processor.pm  view on Meta::CPAN

package AWS::Lambda::Quick::Processor;
use Mo qw( default required );

our $VERSION = '1.0002';

use AWS::Lambda::Quick::CreateZip ();
use AWS::Lambda::Quick::Upload    ();
use File::Temp qw( tempdir );
use Path::Tiny qw( path );

has name         => required => 1;
has src_filename => required => 1;

has 'description';
has 'extra_files';
has 'extra_layers';
has 'memory_size';
has 'region';
has 'stage_name';
has 'timeout';

has _tempdir => sub {
    return tempdir( CLEANUP => 1 );
};
has zip_filename => sub {
    return path( shift->_tempdir, 'handler.zip' );
};

sub selfkv {
    my $self = shift;
    my @computed_args;
    for my $key (@_) {
        my $val = $self->$key;
        push @computed_args, $key => $val if defined $val;
    }
    return @computed_args;
}

sub process {
    my $self = shift;

    AWS::Lambda::Quick::CreateZip->new(
        $self->selfkv(
            qw(
                extra_files
                src_filename
                zip_filename
                )
        ),
    )->create_zip;

    my $uploader = AWS::Lambda::Quick::Upload->new(
        $self->selfkv(
            qw(
                description
                extra_layers
                memory_size
                name
                region
                stage_name
                timeout
                zip_filename



( run in 0.720 second using v1.01-cache-2.11-cpan-39bf76dae61 )