Query trip: bridge the gap between FE nad BE
[myslice.git] / engine / manifoldproxy.py
index 1d629c7..9f119da 100644 (file)
@@ -7,7 +7,10 @@
 import json
 # this is for django objects only
 #from django.core import serializers
-from django.http import HttpResponse
+from django.http import HttpResponse, HttpResponseForbidden
+
+from engine.manifoldquery import ManifoldQuery
+from engine.manifoldapi import ManifoldAPI
 
 # xxx should probably cater for
 # format_in : how is the query encoded in POST
@@ -21,10 +24,15 @@ def api (request,format):
     if format != 'json':
         print "manifoldproxy.api: unexpected format %s -- exiting"%format
         return
-
     # xxx actually ask the backend here
-    hard_wired_answer = [ {'slice_hrn':'a.b.c'}, {'slice_hrn':'ple.inria.foo' } ]
-    answer=hard_wired_answer
+    manifold_query = ManifoldQuery()
+    manifold_query.fill_from_dict(request.POST)
+    manifold_api_session_auth = request.session['manifold']['auth']
+    manifold_api= ManifoldAPI(auth=manifold_api_session_auth)
+    # forward
+    answer=manifold_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")
 
 #################### 
@@ -34,4 +42,4 @@ def api (request,format):
 failure_answer=[ "csrf_failure" ]
 def csrf_failure(request, reason=""):
     print "CSRF failure with reason '%s'"%reason
-    return HttpResponseForbidden (json.dump (failure_answer), mimetype="application/json")
+    return HttpResponseForbidden (json.dumps (failure_answer), mimetype="application/json")