sub
root :Chained(
'/'
) PathPart(
'account'
) CaptureArgs(0) { }
sub
one :Chained(root) PathPart(
'one'
) Args(0) Does(RequestModel) BodyModel(AccountRequest) {
my
(
$self
,
$c
,
$request
) =
@_
;
$c
->res->body(Dumper
$request
->nested_params);
}
sub
two :Chained(root) PathPart(
'two'
) Args(0) Does(RequestModel) BodyModel(AccountRequest) {
my
(
$self
,
$c
,
$request
) =
@_
;
my
$data
=
$request
->as_data([
'username'
,
'first_name'
,
'last_name'
,
'notes'
,
'maybe_array'
,
'maybe_array2'
,
'empty'
,
'empty_array'
,
'indexed'
,
{
profile
=> [
qw/id address city state_id zip phone_number birthday status registered/
] },
{
person_roles
=>[
'role_id'
] },
{
credit_cards
=> [
qw/id card_number expiration _add _delete/
] },
]);
$c
->res->body(Dumper
$data
);
}
sub
three :Chained(root) PathPart(
'three'
) Args(0) Does(RequestModel) BodyModel(AccountRequest) {
my
(
$self
,
$c
,
$request
) =
@_
;
my
$data
=
$request
->as_data([
'username'
,
'first_name'
,
'last_name'
,
'aaa'
,
{
profile
=> [
qw/id birthday status registered/
] },
]);
$c
->res->body(Dumper
$data
);
}
sub
four :Chained(root) PathPart(
'four'
) Args(0) Does(RequestModel) BodyModel(AccountRequest) {
my
(
$self
,
$c
,
$request
) =
@_
;
my
$data
=
$request
->as_data(
'profile'
, [
qw/id birthday status registered/
]);
$c
->res->body(Dumper
$data
);
}
sub
json :Chained(root) PathPart(
'json'
) Args(0) Does(RequestModel) RequestModel(API::AccountRequest) {
my
(
$self
,
$c
,
$request
) =
@_
;
$c
->res->body(Dumper
$request
->nested_params);
}
sub
jsonquery :Chained(root) PathPart(
'jsonquery'
) Args(0) Does(RequestModel) RequestModel(InfoRequest) RequestModel(InfoQuery) {
my
(
$self
,
$c
,
$post
,
$get
) =
@_
;
$c
->res->body(Dumper {
get
=>
$get
->nested_params,
post
=>
$post
->nested_params,
});
}
sub
end :Action {
my
(
$self
,
$c
) =
@_
;
if
(
$c
->error) {
my
$e
=
$c
->error->[-1];
if
(
ref
$e
eq
'CatalystX::RequestModel::Utils::InvalidJSON'
) {
$c
->error(0);
$c
->res->code(
$e
->status_code);
}
}
}
__PACKAGE__->meta->make_immutable;