X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=manifold%2Fmanifoldproxy.py;h=61ac74b0fbb5609b0a3ad115d7e202dd3a25d754;hb=48e41f68d0057e228c819da4c7719bcafc5ca523;hp=3b3ba0fb9ddfa29684383d7b1213a8df07f84fb1;hpb=b709866ba93d98c32127ff4deae5b783e271e5b3;p=unfold.git diff --git a/manifold/manifoldproxy.py b/manifold/manifoldproxy.py index 3b3ba0fb..61ac74b0 100644 --- a/manifold/manifoldproxy.py +++ b/manifold/manifoldproxy.py @@ -6,17 +6,25 @@ from django.http import HttpResponse, HttpResponseForbidden from manifold.manifoldquery import ManifoldQuery from manifold.manifoldapi import ManifoldAPI +debug=False +debug=True + # add artificial delay in s debug_spin=0 #debug_spin=1 +# turn this on if you want the fastest possible (locally cached) feedback +# beware that this is very rough though... +work_offline=False +#work_offline=True + # this view is what the javascript talks to when it sends a query # see also # myslice/urls.py # as well as -# static/js/manifold-async.js -def api (request,format): - """the view associated with /manifold/api/ +# static/js/manifold.js +def proxy (request,format): + """the view associated with /manifold/proxy/ with the query passed using POST""" # expecting a POST @@ -32,18 +40,39 @@ with the query passed using POST""" return try: # translate incoming POST request into a query object + if debug: print 'manifoldproxy.proxy: request.POST',request.POST manifold_query = ManifoldQuery() - manifold_query.fill_from_dict(request.POST) + manifold_query.fill_from_POST(request.POST) + offline_filename="offline-%s-%s.json"%(manifold_query.action,manifold_query.subject) # retrieve session for request manifold_api_session_auth = request.session['manifold']['auth'] + ### patch : return the latest one.. + if work_offline: + # if that won't work then we'll try to update anyways + try: + with (file(offline_filename,"r")) as f: + json_answer=f.read() + print "By-passing : using contents from %s"%offline_filename + return HttpResponse (json_answer, mimetype="application/json") + except: + import traceback + traceback.print_exc() + print "PROCEEDING" + pass + # actually forward manifold_api= ManifoldAPI(auth=manifold_api_session_auth) + if debug: print 'manifoldproxy.proxy: sending to backend', manifold_query answer=manifold_api.send_manifold_query (manifold_query) + json_answer=json.dumps(answer) + if (debug): + with (file(offline_filename,"w")) as f: + f.write(json_answer) if debug_spin: import time time.sleep(debug_spin) # return json-encoded answer - return HttpResponse (json.dumps(answer), mimetype="application/json") + return HttpResponse (json_answer, mimetype="application/json") except: import traceback traceback.print_exc()