def submit_apbs_json(): """ Handles APBS job submissions. Runs the APBS main function originally from 'apbs_cgi.py'. """ json_response = None http_status_response = None if request.method == 'POST': form = loads(request.data)['form'] for key in form.keys(): if key == 'output_scalar': for option in form[key]: form[option] = option form.pop('output_scalar') else: form[key] = str(form[key]) # form[key] = unicode(form[key]) # print('\n\n') print(pp.pformat(form, indent=4, width=10)) # print('\n\n') # print(pp.pformat(request.form.to_dict(), indent=4, width=10)) # redirectURL = apbs_cgi.mainInput(request.form) # redirectURL = apbs_cgi.mainInput(loads(request.data)) redirectURL = apbs_cgi.mainInput(form, STORAGE_HOST) '''=== DEBUG LINE FOR DEV: REMOVE IN FINAL ===''' # if 'http://localhost:5000' in redirectURL: # print(redirectURL) # redirectURL = redirectURL.replace('http://localhost:5000', 'http://localhost:3000') # print(redirectURL) '''===========================================''' # return redirect(redirectURL) response = make_response(JSONEncoder().encode({'status': 'success'})) http_status_code = 202 elif request.method == 'OPTIONS': response = make_response(JSONEncoder().encode(json_response)) response = jobutils.get_request_options(response, 'POST') response.headers[ 'Access-Control-Allow-Headers'] = 'x-requested-with,content-type' http_status_code = 204 response.headers['Content-Type'] = 'application/json' if request.referrer: # Add origin header to response if origin is in whitelist request_origin_url = request.referrer.split('?')[0] if request_origin_url in ORIGIN_WHITELIST: cleared_domain = request_origin_url[:request_origin_url. index('/apbs')] response.headers['Access-Control-Allow-Origin'] = cleared_domain return response, http_status_code
def submit_apbs(): """ Handles APBS job submissions. Runs the APBS main function originally from 'apbs_cgi.py'. """ if request.method == 'POST': print(pp.pformat(request.form.to_dict(), indent=4, width=10)) # return str(request.form) # return str(request.form['removewater']) redirectURL = apbs_cgi.mainInput(request.form) '''=== DEBUG LINE FOR DEV: REMOVE IN FINAL ===''' if 'http://localhost:5000' in redirectURL: print(redirectURL) redirectURL = redirectURL.replace('http://localhost:5000', 'http://localhost:3000') print(redirectURL) '''===========================================''' return redirect(redirectURL)
def jobstatus(): """ GET takes the user directly to the status page A query string in the URL is how the status page is rendered """ if request.method == 'POST': # f = request.files['PDB'] # print("f is of type: "+str(type(f))) # print(f['PDB']) # filename = secure_filename(f.filename) # print('filename: ' + filename) job_type = request.args['submitType'] # print(job_type) # print(request.args) if job_type == 'pdb2pqr': redirectURL = main_cgi.mainCGI(request.form, request.files) elif job_type == 'apbs': print(pp.pformat(request.form.to_dict(), indent=4, width=10)) # return pp.pformat(request.form.to_dict(), indent=4, width=10) # return str(request.form) # return str(request.form['removewater']) redirectURL = apbs_cgi.mainInput(request.form) pass '''=== DEBUG LINE FOR DEV: REMOVE IN FINAL ===''' if ':5000' in redirectURL: print(redirectURL) redirectURL = redirectURL.replace(':5000', ':3000') print(redirectURL) '''===========================================''' return redirect(redirectURL) elif request.method == 'GET': return render_template("index.html")