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=7db1d8cb8e73fd7f56f9063c2629f484493a84c8;hp=5be57514ac596185bf195a999b98b7bdbc627c54;hb=26e9dcd6d31111877fd0b97f5c6743fab226e015;hpb=5a3fd922042f9f0c8281a60014244a70e526f085 diff --git a/lib/Catalyst/Controller/DBIC/API.pm b/lib/Catalyst/Controller/DBIC/API.pm index 5be5751..7db1d8c 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::ActionRole'; } +BEGIN { extends 'Catalyst::Controller'; } use CGI::Expand (); use DBIx::Class::ResultClass::HashRefInflator; @@ -81,8 +81,7 @@ sub begin :Private { my ($self, $c) = @_; - Catalyst::Controller::DBIC::API::Request->meta->apply($c->req) - unless Moose::Util::does_role($c->req, 'Catalyst::Controller::DBIC::API::Request'); + Moose::Util::ensure_all_roles($c->req, 'Catalyst::Controller::DBIC::API::Request'); } =method_protected setup @@ -818,12 +817,18 @@ sub insert_object_from_params my ($self, undef, $object, $params) = @_; my %rels; - while (my ($k, $v) = each %{ $params }) { - if (ref($v) && !(reftype($v) eq reftype(JSON::true))) { - $rels{$k} = $v; + while (my ($key, $value) = each %{ $params }) { + if (ref($value) && !(reftype($value) eq reftype(JSON::true))) { + $rels{$key} = $value; } + # accessor = colname + elsif ($object->can($key)) { + $object->$key($value); + } + # accessor != colname else { - $object->set_column($k => $v); + my $accessor = $object->result_source->column_info($key)->{accessor}; + $object->$accessor($value); } }