diff options
author | dakkar <dakkar@thenautilus.net> | 2013-05-27 17:01:20 +0100 |
---|---|---|
committer | dakkar <dakkar@thenautilus.net> | 2013-05-27 17:01:20 +0100 |
commit | 47d24b4cbea6d8364d0718e31cfd2fb92187b7ea (patch) | |
tree | af6fe6c112f4dd3a87d1606db6d03b48eeeccccb /lib/WebService/TFL/Bus/Request.pm | |
parent | include busses in html (diff) | |
download | HomePanel-47d24b4cbea6d8364d0718e31cfd2fb92187b7ea.tar.gz HomePanel-47d24b4cbea6d8364d0718e31cfd2fb92187b7ea.tar.bz2 HomePanel-47d24b4cbea6d8364d0718e31cfd2fb92187b7ea.zip |
factored TFL client
Diffstat (limited to 'lib/WebService/TFL/Bus/Request.pm')
-rw-r--r-- | lib/WebService/TFL/Bus/Request.pm | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/WebService/TFL/Bus/Request.pm b/lib/WebService/TFL/Bus/Request.pm new file mode 100644 index 0000000..cf35459 --- /dev/null +++ b/lib/WebService/TFL/Bus/Request.pm @@ -0,0 +1,37 @@ +package WebService::TFL::Bus::Request; +use Moose; +use WebService::TFL::Bus::Fields; +use namespace::autoclean; + +for my $field (WebService::TFL::Bus::Fields->query_fields) { + has $field => ( + is => 'rw', + predicate => "has_$field", + ); +} + +has ReturnList => ( + is => 'rw', + isa => 'ArrayRef', + predicate => 'has_ReturnList', +); + +sub request_uri { + my ($self,$base_uri) = @_; + + my $uri = $base_uri->clone; + my %form; + for my $field (WebService::TFL::Bus::Fields->query_fields) { + my $pred = "has_$field"; + if ($self->$pred) { + $form{$field} = $self->$field; + } + } + if ($self->has_ReturnList) { + $form{ReturnList}=join ',',@{$self->ReturnList} + } + $uri->query_form(\%form); + return $uri; +} + +1; |