Commit | Line | Data |
36cf3bcb |
1 | package Tak::ServiceManager; |
2 | |
3 | use Moo; |
4 | |
5 | has service => (is => 'ro', required => 1); |
6 | |
7 | sub start_request { |
8 | my ($self, $req, $type, @args) = @_; |
9 | unless ($type) { |
10 | $req->respond(MISTAKE => request_type => "No request type given"); |
11 | return; |
12 | } |
13 | my $service = $self->service; |
14 | if (my $meth = $service->can("handle_${type}")) { |
15 | $req->respond($service->$meth(@args)); |
16 | return; |
17 | } |
18 | $req->respond(MISTAKE => request_type => "Unknown request type ${type}"); |
19 | } |
20 | |
21 | 1; |