summaryrefslogtreecommitdiff
path: root/reach_reports
diff options
context:
space:
mode:
authormguetlein <martin.guetlein@gmail.com>2010-09-13 10:59:36 +0200
committermguetlein <martin.guetlein@gmail.com>2010-09-13 10:59:36 +0200
commit0acc756e0f2db27abeacf9e229a910df315d279d (patch)
tree1a31aa3fc5e844f4f0ffc6cd5cd9a8f4516b667e /reach_reports
parentf7464e766afebd71397c0f7ad9252f77e13f6c3a (diff)
remove task when creatign report from xml
Diffstat (limited to 'reach_reports')
-rw-r--r--reach_reports/reach_application.rb12
-rw-r--r--reach_reports/reach_persistance.rb1
-rw-r--r--reach_reports/reach_service.rb20
3 files changed, 17 insertions, 16 deletions
diff --git a/reach_reports/reach_application.rb b/reach_reports/reach_application.rb
index 6d60d21..4afaf51 100644
--- a/reach_reports/reach_application.rb
+++ b/reach_reports/reach_application.rb
@@ -29,13 +29,15 @@ post '/reach_report/:type' do
type = extract_type(params)
content_type "text/uri-list"
- task_uri = OpenTox::Task.as_task( "Create "+type+" report", url_for("/reach_report/"+type, :full), params ) do
- LOGGER.info "creating "+type+" report "+params.inspect
- ReachReports.create_report(type,params,request.env["rack.input"])
- end
- halt 202,task_uri
+ LOGGER.info "creating "+type+" report "+params.inspect
+ result_uri = ReachReports.create_report(type,params,request.env["rack.input"])
+ if OpenTox::Utils.task_uri?(result_uri)
+ halt 202,result_uri
+ else
+ result_uri
+ end
end
get '/reach_report/:type/:id' do
diff --git a/reach_reports/reach_persistance.rb b/reach_reports/reach_persistance.rb
index 6c80503..2cbcd71 100644
--- a/reach_reports/reach_persistance.rb
+++ b/reach_reports/reach_persistance.rb
@@ -1011,6 +1011,7 @@ module ReachReports
def self.from_xml(report, xml_data)
+ raise "xml data size < 255, probably no qmrf report : '"+xml_data.to_s+"'" if xml_data.to_s.size<255
doc = Document.new xml_data
root = doc.elements["QMRF"]
diff --git a/reach_reports/reach_service.rb b/reach_reports/reach_service.rb
index c0f789f..8c8618b 100644
--- a/reach_reports/reach_service.rb
+++ b/reach_reports/reach_service.rb
@@ -23,17 +23,19 @@ module ReachReports
def self.create_report( type, params, xml_data=nil )
- #content_type "text/uri-list"
- #task_uri = OpenTox::Task.as_task do |task|
-
+ result_uri = ""
case type
when /(?i)QMRF/
if params[:model_uri]
- report = ReachReports::QmrfReport.new :model_uri => params[:model_uri]
- build_qmrf_report(report)
+ result_uri = OpenTox::Task.as_task( "Create "+type+" report", $sinatra.url_for("/reach_report/"+type, :full), params ) do
+ report = ReachReports::QmrfReport.new :model_uri => params[:model_uri]
+ build_qmrf_report(report)
+ report.report_uri
+ end
elsif xml_data and (input = xml_data.read).to_s.size>0
report = ReachReports::QmrfReport.new
ReachReports::QmrfReport.from_xml(report,input)
+ result_uri = report.report_uri
else
$sinatra.halt 400, "illegal parameters for qmrf-report creation, either\n"+
"* give 'model_uri' as param\n"+
@@ -43,18 +45,14 @@ module ReachReports
when /(?i)QPRF/
$sinatra.halt 400,"qprf report creation not yet implemented"
if params[:compound_uri]
- report = ReachReports::QprfReport.new :compound_uri => params[:compound_uri]
+ #report = ReachReports::QprfReport.new :compound_uri => params[:compound_uri]
else
$sinatra.halt 400, "illegal parameters for qprf-report, use either\n"+
"* compound-uri\n"+
"params given: "+params.inspect
end
end
-
- report.report_uri
-
- #end
- #halt 202,task_uri
+ result_uri
end