aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/App/Controller/Tilma.pm
diff options
context:
space:
mode:
authorEdmund von der Burg <evdb@mysociety.org>2011-04-14 15:50:51 +0100
committerEdmund von der Burg <evdb@mysociety.org>2011-04-14 15:50:51 +0100
commitbf017708ac209924a98c594dcb5b8614b28e0d32 (patch)
tree36f5f600f20a869fa95c7afb3447f0ce279f4d9a /perllib/FixMyStreet/App/Controller/Tilma.pm
parentf81232efccfa9ce54f8c3613f1c674dfd179f46a (diff)
Added Tilma proxy for dev server
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;