summaryrefslogtreecommitdiff
path: root/lib/DeWeave/EDO.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/DeWeave/EDO.pm')
-rw-r--r--lib/DeWeave/EDO.pm18
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/DeWeave/EDO.pm b/lib/DeWeave/EDO.pm
index 3c32c84..81250d2 100644
--- a/lib/DeWeave/EDO.pm
+++ b/lib/DeWeave/EDO.pm
@@ -1,9 +1,10 @@
package DeWeave::EDO;
use Moose;
use namespace::autoclean;
-use MooseX::Types::Moose qw(Int Str Num);
+use MooseX::Types::Moose qw(Int Str Num Bool);
use JSON::Any;
use Try::Tiny;
+use DeWeave::Exception::Deleted;
extends 'DeWeave::WBO';
@@ -28,6 +29,12 @@ has hmac => (
is => 'ro',
);
+has deleted => (
+ isa => Bool,
+ required => 0,
+ is => 'ro',
+);
+
around BUILDARGS => sub {
my $orig = shift;
my $class = shift;
@@ -46,6 +53,15 @@ around BUILDARGS => sub {
values %$extra_args;
}
+ delete @$args{grep {!defined $args->{$_}} keys %$args};
+
+ $class->_debug_data('buildargs: ',$args);
+
+ if ($args->{deleted}) {
+ delete $args->{__crypt};
+ die DeWeave::Exception::Deleted->new({args=>$args});
+ }
+
return $args;
};