summaryrefslogtreecommitdiff
path: root/lib/WebService/TFL/Bus/Request.pm
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2013-05-27 17:01:20 +0100
committerdakkar <dakkar@thenautilus.net>2013-05-27 17:01:20 +0100
commit47d24b4cbea6d8364d0718e31cfd2fb92187b7ea (patch)
treeaf6fe6c112f4dd3a87d1606db6d03b48eeeccccb /lib/WebService/TFL/Bus/Request.pm
parentinclude busses in html (diff)
downloadHomePanel-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.pm37
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;