diff options
author | mguetlein <martin.guetlein@gmail.com> | 2010-09-13 10:59:36 +0200 |
---|---|---|
committer | mguetlein <martin.guetlein@gmail.com> | 2010-09-13 10:59:36 +0200 |
commit | 0acc756e0f2db27abeacf9e229a910df315d279d (patch) | |
tree | 1a31aa3fc5e844f4f0ffc6cd5cd9a8f4516b667e /reach_reports | |
parent | f7464e766afebd71397c0f7ad9252f77e13f6c3a (diff) |
remove task when creatign report from xml
Diffstat (limited to 'reach_reports')
-rw-r--r-- | reach_reports/reach_application.rb | 12 | ||||
-rw-r--r-- | reach_reports/reach_persistance.rb | 1 | ||||
-rw-r--r-- | reach_reports/reach_service.rb | 20 |
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 |