From 38b04ae22624bfa2f44f4ad598a0a40a193e7f44 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Wed, 18 Jul 2012 21:59:10 +0200 Subject: error code parsing fixed --- application.rb | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/application.rb b/application.rb index 77426d3..6cf815a 100644 --- a/application.rb +++ b/application.rb @@ -4,8 +4,8 @@ module OpenTox helpers do def status_code uri - sparql = "SELECT ?o WHERE { GRAPH <#{uri}> { <#{uri}> <#{RDF::OT.hasStatus}> ?o. } }" - status = Backend::FourStore.query(sparql,"text/uri-list") + sparql = "SELECT DISTINCT ?o WHERE { GRAPH <#{uri}> { <#{uri}> <#{RDF::OT.hasStatus}> ?o. } }" + status = Backend::FourStore.query(sparql,"text/uri-list")#.strip.to_s case status when "Completed" 200 @@ -15,8 +15,10 @@ module OpenTox 503 when "Error" sparql = "SELECT ?code WHERE { GRAPH <#{uri}> { <#{uri}> <#{RDF::OT.error}> ?error. ?error <#{RDF::OT.statusCode}> ?code } }" - code = Backend::FourStore.query(sparql,"text/uri-list").to_i - code ? code : 500 + code = Backend::FourStore.query(sparql,"text/uri-list") + code != "" ? code.to_i : 500 + else + 500 end end @@ -25,14 +27,13 @@ module OpenTox get '/task/:id/?' do uri = uri("/task/#{params[:id]}") code = status_code(uri) - #code = 200 if @accept == "text/uri-list" # return resultURI halt code, uri unless code == 200 sparql = "SELECT ?o WHERE { GRAPH <#{uri}> { <#{uri}> <#{RDF::OT.resultURI}> ?o. } }" result_uri = Backend::FourStore.query(sparql,"text/uri-list").gsub(/"|'/,'').gsub(/\^\^.*$/,'') halt code, result_uri else - rdf = FourStore.get(uri, request.env['HTTP_ACCEPT']) + rdf = FourStore.get(uri, @accept) halt code, rdf end end @@ -59,9 +60,11 @@ module OpenTox sparql << "DELETE DATA { GRAPH <#{uri}> {<#{uri}> <#{RDF::OT.hasStatus}> \"Running\"}}" sparql << "INSERT DATA { GRAPH <#{uri}> {<#{uri}> <#{RDF::OT.hasStatus}> \"Error\"}}" sparql << "INSERT DATA { GRAPH <#{uri}> {<#{uri}> <#{RDF::OT.finished_at}> \"#{DateTime.now}\"}}" - id = params[:errorReport].split("\n").first.sub(/^(_:\w+) .*/,'\1') - params[:errorReport] += "\n<#{uri}> <#{RDF::OT.error}> #{id} ." - Backend::FourStore.post uri, params[:errorReport], "text/plain" if params[:errorReport] + if params[:errorReport] + id = params[:errorReport].split("\n").first.sub(/^(_:\w+) .*/,'\1') + params[:errorReport] += "\n<#{uri}> <#{RDF::OT.error}> #{id} ." + Backend::FourStore.post uri, params[:errorReport], "text/plain" + end #if task.waiting_for and task.waiting_for.uri? # try cancelling the child task else -- cgit v1.2.3