Isolate Stemweb calls into own controller; guard against server being down. #29
[scpubgit/stemmaweb.git] / lib / stemmaweb / Controller / Root.pm
index f33761d..0315867 100644 (file)
@@ -1,7 +1,7 @@
 package stemmaweb::Controller::Root;
 use Moose;
 use namespace::autoclean;
-use LWP::UserAgent;
+use JSON qw ();
 use TryCatch;
 use XML::LibXML;
 use XML::LibXML::XPathContext;
@@ -15,8 +15,6 @@ BEGIN { extends 'Catalyst::Controller' }
 #
 __PACKAGE__->config(namespace => '');
 
-my $STEMWEB_BASE_URL = 'http://slinkola.users.cs.helsinki.fi';
-
 =head1 NAME
 
 stemmaweb::Controller::Root - Root Controller for stemmaweb
@@ -41,14 +39,6 @@ sub index :Path :Args(0) {
        if( $c->req->param('withtradition') ) {
                $c->stash->{'withtradition'} = $c->req->param('withtradition');
        }
-       # Get the current list of Stemweb algorithms
-       my $ua = LWP::UserAgent->new();
-       my $resp = $ua->get( $STEMWEB_BASE_URL . '/algorithms/available' );
-       if( $resp->is_success ) {
-               $c->stash->{'stemweb_algorithms'} = $resp->content;
-       } else {
-               $c->stash->{'stemweb_algorithms'} = '{}';
-       }
     $c->stash->{template} = 'index.tt';
 }
 
@@ -324,7 +314,6 @@ sub textinfo :Local :Args(1) {
        my $textinfo = {
                textid => $textid,
                name => $tradition->name,
-               #language => $tradition->language,
                public => $tradition->public || 0,
                owner => $tradition->user ? $tradition->user->email : undef,
                witnesses => [ map { $_->sigil } $tradition->witnesses ],
@@ -332,6 +321,9 @@ sub textinfo :Local :Args(1) {
        if( $tradition->can('language') ) {
                $textinfo->{'language'} = $tradition->language;
        }
+       if( $tradition->can('stemweb_jobid') ) {
+               $textinfo->{'stemweb_jobid'} = $tradition->stemweb_jobid || 0;
+       }
        my @stemmasvg = map { { 
                        name => $_->identifier, 
                        directed => _json_bool( !$_->is_undirected ),