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%2FRPC.pm;fp=lib%2FCatalyst%2FController%2FDBIC%2FAPI%2FRPC.pm;h=965549707b8809ff31e8fba03ca486146a35239d;hp=4fc764abb68186fa2b0943f9bdcd07225817da7d;hb=609916e5de6201b2e2212328153657194b41a730;hpb=8cf0b66a04e74b7bd5db0c8041575825ec8f73d2 diff --git a/lib/Catalyst/Controller/DBIC/API/RPC.pm b/lib/Catalyst/Controller/DBIC/API/RPC.pm index 4fc764a..9655497 100644 --- a/lib/Catalyst/Controller/DBIC/API/RPC.pm +++ b/lib/Catalyst/Controller/DBIC/API/RPC.pm @@ -22,6 +22,7 @@ By default provides the following endpoints: $base/create $base/list + $base/id/[identifier] $base/id/[identifier]/delete $base/id/[identifier]/update @@ -40,14 +41,6 @@ As described in L, this action is the cha ... ); -=method_protected object - -Chained: L -PathPart: object -CaptureArgs: 1 - -Provides an chain point to the functionality described in L. All object level endpoints should use this as their chain root. - =cut sub index : Chained('setup') PathPart('') Args(0) { @@ -59,7 +52,7 @@ sub index : Chained('setup') PathPart('') Args(0) { =method_protected create -Chained: L +Chained: L PathPart: create CaptureArgs: 0 @@ -67,17 +60,15 @@ Provides an endpoint to the functionality described in Lforward('object'); - return if $self->get_errors($c); $c->forward('update_or_create'); } =method_protected list -Chained: L +Chained: L PathPart: list CaptureArgs: 0 @@ -85,42 +76,90 @@ Provides an endpoint to the functionality described in Lnext::method($c); } +=method_protected item + +Chained: L +PathPart: '' +Args: 0 + +Provides an endpoint to the functionality described in L. + +=cut + +sub item :Chained('object_with_id') :PathPart('') :Args(0) { + my ($self, $c) = @_; + + $c->forward('view'); +} + =method_protected update -Chained: L +Chained: L PathPart: update -CaptureArgs: 0 +Args: 0 Provides an endpoint to the functionality described in L. =cut -sub update :Chained('object') :PathPart('update') :Args(0) { - my ($self, $c) = @_; +sub update :Chained('object_with_id') :PathPart('update') :Args(0) { + my ($self, $c) = @_; $c->forward('update_or_create'); } =method_protected delete -Chained: L +Chained: L PathPart: delete -CaptureArgs: 0 +Args: 0 Provides an endpoint to the functionality described in L. =cut -sub delete :Chained('object') :PathPart('delete') :Args(0) { - my ($self, $c) = @_; +sub delete :Chained('object_with_id') :PathPart('delete') :Args(0) +{ + my ($self, $c) = @_; + $self->next::method($c); +} - $self->next::method($c); +=method_protected update_bulk + +Chained: L +PathPart: update +Args: 0 + +Provides an endpoint to the functionality described in L for multiple objects. + +=cut + +sub update_bulk :Chained('object_no_id') :PathPart('update') :Args(0) +{ + my ($self, $c) = @_; + $c->forward('update_or_create'); +} + +=method_protected delete_bulk + +Chained: L +PathPart: delete +Args: 0 + +Provides an endpoint to the functionality described in L for multiple objects. + +=cut + +sub delete_bulk :Chained('object_no_id') :PathPart('delete') :Args(0) +{ + my ($self, $c) = @_; + $self->next::method($c); } 1;