Commit | Line | Data |
---|---|---|
36cf3bcb | 1 | package Tak::Request; |
2 | ||
31a246e4 | 3 | use Tak::Result; |
36cf3bcb | 4 | use Moo; |
5 | ||
31a246e4 | 6 | has on_progress => (is => 'ro'); |
36cf3bcb | 7 | |
31a246e4 | 8 | has on_result => (is => 'ro', required => 1); |
36cf3bcb | 9 | |
31a246e4 | 10 | sub progress { |
11 | my ($self, @report) = @_; | |
12 | if (my $cb = $self->on_progress) { | |
13 | $cb->(@report); | |
14 | } | |
15 | } | |
ca30c15e | 16 | |
31a246e4 | 17 | sub result { |
18 | my ($self, $type, @data) = @_; | |
19 | $self->on_result->(Tak::Result->new(type => $type, data => \@data)); | |
36cf3bcb | 20 | } |
21 | ||
31a246e4 | 22 | sub success { shift->result(success => @_) } |
23 | sub mistake { shift->result(mistake => @_) } | |
24 | sub failure { shift->result(failure => @_) } | |
25 | sub fatal { shift->result(fatal => @_) } | |
26 | ||
36cf3bcb | 27 | 1; |