package WebService::TFL::Bus::Request;
use Moo;
use Types::Standard -all;
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;