aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/App/Controller/Tilma.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perllib/FixMyStreet/App/Controller/Tilma.pm')
-rw-r--r--perllib/FixMyStreet/App/Controller/Tilma.pm46
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;