summaryrefslogtreecommitdiff
path: root/lib/WebService/TFL/TubeStatus.pm
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2023-12-09 14:02:41 +0000
committerdakkar <dakkar@thenautilus.net>2023-12-09 14:02:41 +0000
commit4a46c1031aa69e7ba0e309ba9692250f14dba6b8 (patch)
treeb0e5b82f1f763102fb3094904a002d158cc90d7f /lib/WebService/TFL/TubeStatus.pm
parentnew tube api (diff)
downloadHomePanel-4a46c1031aa69e7ba0e309ba9692250f14dba6b8.tar.gz
HomePanel-4a46c1031aa69e7ba0e309ba9692250f14dba6b8.tar.bz2
HomePanel-4a46c1031aa69e7ba0e309ba9692250f14dba6b8.zip
actually async
Diffstat (limited to 'lib/WebService/TFL/TubeStatus.pm')
-rw-r--r--lib/WebService/TFL/TubeStatus.pm20
1 files changed, 8 insertions, 12 deletions
diff --git a/lib/WebService/TFL/TubeStatus.pm b/lib/WebService/TFL/TubeStatus.pm
index 4166a79..52d573d 100644
--- a/lib/WebService/TFL/TubeStatus.pm
+++ b/lib/WebService/TFL/TubeStatus.pm
@@ -1,20 +1,16 @@
package WebService::TFL::TubeStatus;
use Moo;
-use Type::Utils 'duck_type';
use Types::URI 'Uri';
+use Types::Standard -types;
+use Future::AsyncAwait;
use WebService::TFL::TubeStatus::Response;
-use namespace::autoclean;
+use namespace::clean;
has user_agent => (
- isa => duck_type(['get']),
- is => 'lazy',
+ isa => HasMethods['do_request'],
+ is => 'ro',
+ required => 1,
);
-sub _build_user_agent {
- require LWP::UserAgent;
- my $ua = LWP::UserAgent->new();
- $ua->env_proxy;
- return $ua;
-}
has uri => (
isa => Uri,
@@ -28,11 +24,11 @@ has parser => (
builder => sub { JSON->new->utf8 },
);
-sub request {
+async sub request {
my ($self) = @_;
+ my $http_response = await $self->user_agent->do_request(uri => $self->uri);
- my $http_response = $self->user_agent->get($self->uri);
if ($http_response->is_success) {
my $json = $http_response->content;