Commit | Line | Data |
d2739840 |
1 | package RestTest::Controller::API::RPC::Any; |
2 | use Moose; |
3 | BEGIN { extends 'Catalyst::Controller::DBIC::API::RPC' } |
4 | |
5 | use namespace::autoclean; |
6 | |
7 | sub setup :Chained('/api/rpc/rpc_base') :CaptureArgs(1) :PathPart('any') { |
8 | my ($self, $c, $object_type) = @_; |
9 | |
10 | my $config = {}; |
11 | if ($object_type eq 'artist') { |
12 | $config->{class} = 'RestTestDB::Artist'; |
13 | $config->{create_requires} = [qw/name/]; |
14 | $config->{update_allows} = [qw/name/]; |
15 | } elsif ($object_type eq 'track') { |
16 | $config->{class} = 'RestTestDB::Track'; |
17 | $config->{update_allows} = [qw/title position/]; |
18 | } else { |
19 | $self->push_error($c, { message => "invalid object_type" }); |
20 | return; |
21 | } |
22 | |
23 | $c->req->_set_class($config->{class}); |
24 | $self->_set_class($config->{class}); |
25 | $c->req->_set_current_result_set($self->stored_result_source->resultset); |
26 | $c->stash->{$_} = $config->{$_} for keys %{$config}; |
27 | } |
28 | |
29 | 1; |