aboutsummaryrefslogtreecommitdiff
path: root/lib/Net/Hawk/Errors.pm
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2014-12-21 11:34:04 +0000
committerdakkar <dakkar@thenautilus.net>2014-12-21 11:34:04 +0000
commitaa127d020cc85e790c6caa158860a298142ed85d (patch)
tree9a08f5c7fc947558315751cdbc7485c753bedaed /lib/Net/Hawk/Errors.pm
parentmore client tests (diff)
downloadnet-hawk-aa127d020cc85e790c6caa158860a298142ed85d.tar.gz
net-hawk-aa127d020cc85e790c6caa158860a298142ed85d.tar.bz2
net-hawk-aa127d020cc85e790c6caa158860a298142ed85d.zip
authenticate client tests
Diffstat (limited to 'lib/Net/Hawk/Errors.pm')
-rw-r--r--lib/Net/Hawk/Errors.pm42
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/Net/Hawk/Errors.pm b/lib/Net/Hawk/Errors.pm
new file mode 100644
index 0000000..befd142
--- /dev/null
+++ b/lib/Net/Hawk/Errors.pm
@@ -0,0 +1,42 @@
+package Net::Hawk::Errors;
+use strict;
+use warnings;
+use 5.010;
+
+package Net::Hawk::Errors::base {
+ use Moo;
+ use Types::Standard qw(Str);
+ with 'Throwable';
+ use overload
+ q{""} => 'as_string',
+ fallback => 1;
+
+ has message => (
+ is => 'ro',
+ isa => Str,
+ required => 1,
+ );
+
+ sub as_string { $_[0]->message }
+};
+
+package Net::Hawk::Errors::BadRequest {
+ use Moo; extends 'Net::Hawk::Errors::base';
+
+ has value => (is => 'ro');
+
+ sub as_string {
+ my ($self) = @_;
+ return sprintf(
+ '%s (%s)',
+ $self->message,
+ $self->value // '<undef>',
+ );
+ }
+};
+
+package Net::Hawk::Errors::UnAuthorized {
+ use Moo; extends 'Net::Hawk::Errors::base';
+};
+
+1;