scaffold the forwarding of requests to the backend
[unfold.git] / engine / manifoldproxy.py
index 0eac779..109f593 100644 (file)
@@ -4,8 +4,12 @@
 # as well as 
 # static/js/manifold-async.js
 
-from django.core import serializers
-from django.http import HttpResponse
+import json
+# this is for django objects only
+#from django.core import serializers
+from django.http import HttpResponse, HttpResponseForbidden
+
+from engine.manifoldquery import ManifoldQuery
 
 # xxx should probably cater for
 # format_in : how is the query encoded in POST
@@ -21,6 +25,22 @@ def api (request,format):
         return
 
     # xxx actually ask the backend here
-    hard_wired_answer = {'a':'some string','b':123}
-    return HttpResponse (serializers.serialize("json",hard_wired_answer),
-                         mimetype="application/json")
+    # 4amine
+    # manifold_query = ManifoldQuery()
+    # manifold_query.fill_from_dict(request.POST)
+    # locate the api and/or the auth
+    # api=
+    # forward
+    # answer=api.send_manifold_query (manifold_query)
+    hard_wired_answer = [ {'slice_hrn':'a.b.c'}, {'slice_hrn':'ple.inria.foo' } ]
+    answer=hard_wired_answer
+    return HttpResponse (json.dumps(answer), mimetype="application/json")
+
+#################### 
+# to enable : see CSRF_FAILURE_VIEW in settings.py
+# probably we want to elaborate this one a little in real life
+# at least we can display the reason in the django output (although this turns out disappointing)
+failure_answer=[ "csrf_failure" ]
+def csrf_failure(request, reason=""):
+    print "CSRF failure with reason '%s'"%reason
+    return HttpResponseForbidden (json.dumps (failure_answer), mimetype="application/json")