From: Florian Ragwitz Date: Mon, 1 Mar 2010 21:59:26 +0000 (+0100) Subject: Use ActionRole::MatchRequestMethod instead of Action::REST. X-Git-Tag: 2.002001~16 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Controller-DBIC-API.git;a=commitdiff_plain;h=a784948c9995d0481e1168fec40c60cd0acc0864 Use ActionRole::MatchRequestMethod instead of Action::REST. --- diff --git a/dist.ini b/dist.ini index d75b155..4671838 100644 --- a/dist.ini +++ b/dist.ini @@ -20,6 +20,8 @@ repository = git://git.shadowcat.co.uk/catagits/Catalys [Prereq] DBIx::Class = 0.08103 Catalyst::Runtime = 5.7010 +Catalyst::Controller::ActionRole = 0 +Catalyst::ActionRole::MatchRequestMethod = 0 Catalyst::Action::REST = 0.83 CGI::Expand = 2.02 JSON::Any = 1.19 diff --git a/lib/Catalyst/Controller/DBIC/API.pm b/lib/Catalyst/Controller/DBIC/API.pm index ea086b7..2027696 100644 --- a/lib/Catalyst/Controller/DBIC/API.pm +++ b/lib/Catalyst/Controller/DBIC/API.pm @@ -2,7 +2,7 @@ package Catalyst::Controller::DBIC::API; #ABSTRACT: Provides a DBIx::Class web service automagically use Moose; -BEGIN { extends 'Catalyst::Controller'; } +BEGIN { extends 'Catalyst::Controller::ActionRole'; } use CGI::Expand (); use DBIx::Class::ResultClass::HashRefInflator; diff --git a/lib/Catalyst/Controller/DBIC/API/REST.pm b/lib/Catalyst/Controller/DBIC/API/REST.pm index 04fe041..2414a9c 100644 --- a/lib/Catalyst/Controller/DBIC/API/REST.pm +++ b/lib/Catalyst/Controller/DBIC/API/REST.pm @@ -50,27 +50,19 @@ GET: forwards to L =cut -sub no_id : Chained('objects_no_id') PathPart('') ActionClass('REST') :Args(0) {} - -sub no_id_PUT -{ - my ( $self, $c ) = @_; - $self->update_or_create($c); -} - -sub no_id_POST +sub update_or_create_objects : Chained('objects_no_id') PathPart('') Does('MatchRequestMethod') Method('POST') Method('PUT') Args(0) { my ( $self, $c ) = @_; $self->update_or_create($c); } -sub no_id_DELETE +sub delete_many_objects : Chained('objects_no_id') PathPart('') Does('MatchRequestMethod') Method('DELETE') Args(0) { my ( $self, $c ) = @_; $self->delete($c); } -sub no_id_GET +sub list_objects : Chained('objects_no_id') PathPart('') Does('MatchRequestMethod') Method('GET') Args(0) { my ( $self, $c ) = @_; $self->list($c); @@ -90,27 +82,19 @@ GET: forwards to L =cut -sub with_id :Chained('object_with_id') :PathPart('') :ActionClass('REST') :Args(0) {} - -sub with_id_PUT -{ - my ( $self, $c ) = @_; - $self->update_or_create($c); -} - -sub with_id_POST +sub update_or_create_one_object : Chained('object_with_id') PathPart('') Does('MatchRequestMethod') Method('POST') Method('PUT') Args(0) { my ( $self, $c ) = @_; $self->update_or_create($c); } -sub with_id_DELETE +sub delete_one_object : Chained('object_with_id') PathPart('') Does('MatchRequestMethod') Method('DELETE') Args(0) { my ( $self, $c ) = @_; $self->delete($c); } -sub with_id_GET +sub list_one_object : Chained('object_with_id') PathPart('') Does('MatchRequestMethod') Method('GET') Args(0) { my ( $self, $c ) = @_; $self->item($c);