manifoldapi now expects the URL as an argument to its constructor
[myslice.git] / manifoldapi / manifoldproxy.py
index a42e98d..5268f41 100644 (file)
@@ -10,7 +10,8 @@ from manifold.core.query        import Query
 from manifold.core.result_value import ResultValue
 from manifoldapi                import ManifoldAPI
 from manifoldresult             import ManifoldException
-from manifold.util.log          import Log
+
+# from unfold.sessioncache import SessionCache
 
 from myslice.settings import config, logger
 
@@ -30,20 +31,25 @@ debug_empty=False
 # myslice/urls.py
 # as well as 
 # static/js/manifold.js
-def proxy (request,format):
+def proxy(request, format):
+    from myslice.settings import config
+    url = config.manifold_url()
+    return _proxy(url, request, format)
+
+def _proxy(url, request, format):
     """the view associated with /manifold/proxy/ with the query passed using POST"""
     
     # expecting a POST
     if request.method != 'POST':
         logger.error("MANIFOLDPROXY unexpected method {} -- exiting".format(request.method))
-        return HttpResponse ({"ret":0}, mimetype="application/json")
+        return HttpResponse ({"ret":0}, content_type="application/json")
     # we only support json for now
     # if needed in the future we should probably cater for
     # format_in : how is the query encoded in POST
     # format_out: how to serve the results
     if format != 'json':
         logger.error("MANIFOLDPROXY unexpected format {} -- exiting".format(format))
-        return HttpResponse ({"ret":0}, mimetype="application/json")
+        return HttpResponse ({"ret":0}, content_type="application/json")
     try:
         # translate incoming POST request into a query object
         #logger.debug("MANIFOLDPROXY request.POST {}".format(request.POST))
@@ -62,13 +68,15 @@ def proxy (request,format):
             if 'manifold' in request.session:
                 manifold_api_session_auth = request.session['manifold']['auth']
             else:
-                return HttpResponse (json.dumps({'code':0,'value':[]}), mimetype="application/json")
+            #manifold_api_session_auth = SessionCache().get_auth(request)
+            #if not manifold_api_session_auth:
+                return HttpResponse (json.dumps({'code':0,'value':[]}), content_type="application/json")
                 
         if debug_empty and manifold_query.action.lower()=='get':
-            return HttpResponse (json.dumps({'code':0,'value':[]}), mimetype="application/json")
+            return HttpResponse (json.dumps({'code':0,'value':[]}), content_type="application/json")
                 
         # actually forward
-        manifold_api= ManifoldAPI(auth=manifold_api_session_auth)
+        manifold_api= ManifoldAPI(url, auth=manifold_api_session_auth)
 
         # for the benefit of the python code, manifoldAPI raises an exception if something is wrong
         # however in this case we want to propagate the complete manifold result to the js world
@@ -100,13 +108,13 @@ def proxy (request,format):
         
         json_answer=json.dumps(result)
 
-        return HttpResponse (json_answer, mimetype="application/json")
+        return HttpResponse (json_answer, content_type="application/json")
 
     except Exception as e:
         logger.error("MANIFOLDPROXY {}".format(e))
         import traceback
         logger.error(traceback.format_exc())
-        return HttpResponse ({"ret":0}, mimetype="application/json")
+        return HttpResponse ({"ret":0}, content_type="application/json")
 
 #################### 
 # see CSRF_FAILURE_VIEW in settings.py
@@ -115,4 +123,4 @@ def proxy (request,format):
 failure_answer=[ "csrf_failure" ]
 def csrf_failure(request, reason=""):
     logger.error("CSRF failure with reason '{}'".format(reason))
-    return HttpResponseForbidden (json.dumps (failure_answer), mimetype="application/json")
+    return HttpResponseForbidden (json.dumps (failure_answer), content_type="application/json")