import error config and manifoldapi.manifoldresult
[myslice.git] / rest / update.py
index 7b27759..fdd9578 100644 (file)
@@ -1,45 +1,52 @@
+from rest import ObjectRequest, error, success
+
 from django.views.generic.base      import TemplateView
 from django.shortcuts               import render_to_response
+from django.http                    import HttpResponse
 
 from unfold.loginrequired           import LoginRequiredView
-from django.http                    import HttpResponse
 
 from manifold.core.query            import Query, AnalyzedQuery
 from manifoldapi.manifoldapi        import execute_query
 
-from rest import ObjectRequest, error, success
-
-from string import join
-
-import json
-
+from myslice.settings import logger
 
 def dispatch(request, object_type, object_name):
     
-    o = objectRequest(request, object_type, object_name)    
-    
-    object_filters = {}
-    object_params = {}
-    result = {}
+    o = ObjectRequest(request, object_type, object_name)    
     
     if request.method == 'POST':
         req_items = request.POST
     elif request.method == 'GET':
         #return error('only post request is supported')
         req_items = request.GET
-
+    logger.debug(req_items)
     for el in req_items.items():
+        
+        logger.debug("#===============> {}".format(el))
         if el[0].startswith('filters'):
             o.filters[el[0][8:-1]] = el[1]
         elif el[0].startswith('params'):
-            o.addParams(req_items.getlist('params[]'))
-        elif el[0].startswith('columns'):
-            o.addFilters(req_items.getlist('columns[]'))
+            logger.debug("#======> 0 {}".format(el[0]))
+            logger.debug("#======> 1 {}".format(req_items.getlist(el[0])))
+
+            if (el[0][-2:] == '[]') :
+                # when receiving params[key][] = 'value1' ...
+                #o.params.append({el[0][7:-3]:",".join(req_items.getlist(el[0]))})
+                o.params.append({el[0][7:-3]:req_items.getlist(el[0])})
+            else :
+                # when receiving params[key] = 'value'
+                o.params.append({el[0][7:-1]:el[1]})
+            
+            logger.debug("o.params = {}".format(o.params))
+            
+        elif el[0].startswith('fields'):
+            o.fields=req_items.getlist('fields[]')
         elif el[0].startswith('options'):
             o.options = req_items.getlist('options[]')
-
+    
     try:
-        response = o.execute()
+        response = o.update()
 
         if response :
             return success('record updated')
@@ -47,5 +54,5 @@ def dispatch(request, object_type, object_name):
             return error('an error has occurred')
  
     except Exception, e:
-        return error(str(e))
+        return error("exception:"+str(e))