X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Controller-DBIC-API.git;a=blobdiff_plain;f=lib%2FCatalyst%2FController%2FDBIC%2FAPI.pm;h=058e790e85e37f4c06535c5378a4af6f72877e6f;hp=f90891ae2e3386e51d243dc5a48c7ebcd0b0e871;hb=e3160171b3df3634005d82300b046deb328fd284;hpb=4cb8623abade7b9f100b3892df93ddcfb1168e01 diff --git a/lib/Catalyst/Controller/DBIC/API.pm b/lib/Catalyst/Controller/DBIC/API.pm index f90891a..058e790 100644 --- a/lib/Catalyst/Controller/DBIC/API.pm +++ b/lib/Catalyst/Controller/DBIC/API.pm @@ -63,7 +63,8 @@ __PACKAGE__->config(); ], ordered_by => ['age'], search_exposes => ['age', 'nickname', { cds => ['title', 'year'] }], - data_root => 'data', + data_root => 'list', + item_root => 'data', use_json_boolean => 1, return_object => 1, ); @@ -963,7 +964,9 @@ sub end : Private { if ( $c->res->status == 200 ) { $c->stash->{ $self->stash_key }->{success} = $self->use_json_boolean ? JSON::true : 'true'; - if ( $self->return_object && $c->req->has_objects ) { + if ( $self->return_object + && $c->req->has_objects + && ! exists $c->stash->{ $self->stash_key }->{ $self->data_root } ) { my $returned_objects = []; push( @$returned_objects, $self->each_object_inflate( $c, $_ ) ) for map { $_->[0] } $c->req->all_objects; @@ -1140,11 +1143,17 @@ Controls where in stash request_data should be stored, and defaults to 'response =head3 data_root -By default, the response data is serialized into +By default, the response data of multiple item actions is serialized into $c->stash->{$self->stash_key}->{$self->data_root} and data_root defaults to 'list' to preserve backwards compatibility. This is now configuable to meet the needs of the consuming client. +=head3 item_root + +By default, the response data of single item actions is serialized into +$c->stash->{$self->stash_key}->{$self->item_root} and item_root default to +'data'. + =head3 use_json_boolean By default, the response success status is set to a string value of "true" or