$WebService::Raygun::Message::User::VERSION
=
'0.030'
;
subtype
'RaygunUser'
=> as
'Object'
=> where {
$_
->isa(
'WebService::Raygun::Message::User'
);
};
coerce
'RaygunUser'
=> from
'Str'
=> via {
return
WebService::Raygun::Message::User->new(
email
=>
$_
,
identifier
=>
$_
)
if
$_
=~ /[^@]+\@[^\.]+\..*/;
return
WebService::Raygun::Message::User->new(
identifier
=>
$_
);
} => from
'Int'
=> via {
return
WebService::Raygun::Message::User->new(
identifier
=>
"$_"
);
} => from
'HashRef'
=> via {
return
WebService::Raygun::Message::User->new(%{
$_
});
};
no
Mouse::Util::TypeConstraints;
has
identifier
=> (
is
=>
'rw'
,
isa
=>
'Str'
,
required
=> 1,
default
=>
''
,
);
has
email
=> (
is
=>
'rw'
,
isa
=>
'Str'
,
default
=>
''
,
);
has
is_anonymous
=>
(
is
=>
'rw'
,
isa
=>
'Bool'
,
default
=>
sub
{
return
1; } );
has
full_name
=> (
is
=>
'rw'
,
isa
=>
'Str'
,
default
=>
''
);
has
first_name
=> (
is
=>
'rw'
,
isa
=>
'Str'
,
default
=>
''
,
);
has
uuid
=>
(
is
=>
'rw'
,
isa
=>
'Str'
,
default
=>
sub
{
return
guid_string; } );
sub
prepare_raygun {
my
$self
=
shift
;
return
{
identifier
=>
$self
->identifier,
isAnonymous
=>
$self
->is_anonymous,
email
=>
$self
->email,
fullName
=>
$self
->full_name,
firstName
=>
$self
->first_name,
uuid
=>
$self
->uuid,
};
}
__PACKAGE__->meta->make_immutable();
1;