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%2FREST.pm;h=a1c47e1effb2a6b3e51f08a00a8fb1ecc90faabb;hp=474f80def6286e35d18f75213f7f886b0c50c52a;hb=8cf0b66a04e74b7bd5db0c8041575825ec8f73d2;hpb=73517f507669cada16503d144607e42c86b65f64 diff --git a/lib/Catalyst/Controller/DBIC/API/REST.pm b/lib/Catalyst/Controller/DBIC/API/REST.pm index 474f80d..a1c47e1 100644 --- a/lib/Catalyst/Controller/DBIC/API/REST.pm +++ b/lib/Catalyst/Controller/DBIC/API/REST.pm @@ -50,35 +50,56 @@ GET: forwards to L =cut -sub base : Chained('setup') PathPart('') ActionClass('REST') Args {} +sub no_id : Chained('object_no_id') PathPart('') ActionClass('REST') :CaptureArgs(0) {} -sub base_PUT { +sub no_id_PUT +{ my ( $self, $c ) = @_; - - $c->forward('object'); - return if $self->get_errors($c); $c->forward('update_or_create'); } -sub base_POST { +sub no_id_POST +{ my ( $self, $c ) = @_; - - $c->forward('object'); - return if $self->get_errors($c); $c->forward('update_or_create'); } -sub base_DELETE { +sub no_id_DELETE +{ my ( $self, $c ) = @_; - $c->forward('object'); - return if $self->get_errors($c); $c->forward('delete'); } -sub base_GET { +sub no_id_GET +{ my ( $self, $c ) = @_; - $c->forward('list'); } +sub with_id :Chained('object_with_id') :PathPart('') :ActionClass('REST') :CaptureArgs(0) {} + +sub with_id_PUT +{ + my ( $self, $c ) = @_; + $c->forward('update_or_create'); +} + +sub with_id_POST +{ + my ( $self, $c ) = @_; + $c->forward('update_or_create'); +} + +sub with_id_DELETE +{ + my ( $self, $c ) = @_; + $c->forward('delete'); +} + +sub with_id_GET +{ + my ( $self, $c ) = @_; + $c->forward('item'); +} + 1;