From 47d24b4cbea6d8364d0718e31cfd2fb92187b7ea Mon Sep 17 00:00:00 2001 From: dakkar Date: Mon, 27 May 2013 17:01:20 +0100 Subject: factored TFL client --- lib/WebService/TFL/Bus/Request.pm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 lib/WebService/TFL/Bus/Request.pm (limited to 'lib/WebService/TFL/Bus/Request.pm') 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; -- cgit v1.2.3