Commit | Line | Data |
ef1a41f2 |
1 | package Reaction::Types::CreditCard; |
2 | |
3 | use MooseX::Types |
ab578905 |
4 | -declare => [qw/CardNumber CheckNumber/]; |
ef1a41f2 |
5 | |
ab578905 |
6 | use Reaction::Types::Core qw/NonEmptySimpleStr PositiveInt/; |
4e13fa5f |
7 | use Business::CreditCard (); |
ef1a41f2 |
8 | |
ab578905 |
9 | subtype CardNumber |
10 | => as NonEmptySimpleStr |
4e13fa5f |
11 | => where { Business::CreditCard::validate($_) } |
ef1a41f2 |
12 | => message {"Must be a valid card number"}; |
13 | |
ab578905 |
14 | subtype CheckNumber |
15 | => as PositiveInt |
16 | => where { $_ <= 999 } |
17 | => message { "Must be a 3 digits number" }; |
18 | |
ef1a41f2 |
19 | 1; |
20 | |
21 | =head1 NAME |
22 | |
23 | Reaction::Types::CreditCard |
24 | |
25 | =head1 DESCRIPTION |
26 | |
27 | =over |
28 | |
29 | =item * CardNumber |
30 | |
31 | =back |
32 | |
33 | =head1 SEE ALSO |
34 | |
35 | =over |
36 | |
37 | =item * L<Reaction::Types::Core> |
38 | |
39 | =back |
40 | |
41 | =head1 AUTHORS |
42 | |
43 | See L<Reaction::Class> for authors. |
44 | |
45 | =head1 LICENSE |
46 | |
47 | See L<Reaction::Class> for the license. |
48 | |
49 | =cut |