[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
#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;
=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);
=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);