diff options
Diffstat (limited to 'perllib/FixMyStreet/App/Controller/Tilma.pm')
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Tilma.pm | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Tilma.pm b/perllib/FixMyStreet/App/Controller/Tilma.pm new file mode 100644 index 000000000..1be481949 --- /dev/null +++ b/perllib/FixMyStreet/App/Controller/Tilma.pm @@ -0,0 +1,46 @@ +package FixMyStreet::App::Controller::Tilma; +use Moose; +use namespace::autoclean; + +BEGIN { extends 'Catalyst::Controller'; } + +use LWP::UserAgent; + +=head1 NAME + +FixMyStreet::App::Controller::Tilma - Tilma proxy + +=head1 DESCRIPTION + +A tilma proxy - only intended to be used during dev. In production the webserver should do this proxying. + +=head1 METHODS + +=head2 default + +Proxy everything through to the tilma servers. + +=cut + +sub default : Path { + my ( $self, $c ) = @_; + + my $path = $c->req->uri->path_query; + $path =~ s{/tilma/}{}; + + my $tilma_uri = URI->new("http://tilma.mysociety.org/$path"); + + my $tilma_res = LWP::UserAgent->new->get($tilma_uri); + + if ( $tilma_res->is_success ) { + $c->res->content_type( $tilma_res->content_type ); + $c->res->body( $tilma_res->content ); + } + else { + die sprintf "Error getting %s: %s", $tilma_uri, $tilma_res->message; + } +} + +__PACKAGE__->meta->make_immutable; + +1; |