cb11668346d4ff633effee6062c4cc03eba10535
[myslice.git] / rest / update.py
1 from django.views.generic.base      import TemplateView
2 from django.shortcuts               import render_to_response
3
4 from unfold.loginrequired           import LoginRequiredView
5 from django.http                    import HttpResponse
6
7 from manifold.core.query            import Query, AnalyzedQuery
8 from manifoldapi.manifoldapi        import execute_query
9
10 from rest import ObjectRequest, error, success
11
12 from string import join
13
14 import json
15
16
17 def dispatch(request, object_type, object_name):
18     
19     o = ObjectRequest(request, object_type, object_name)    
20     
21     if request.method == 'POST':
22         req_items = request.POST
23     elif request.method == 'GET':
24         #return error('only post request is supported')
25         req_items = request.GET
26     print req_items
27     for el in req_items.items():
28         
29         print "#===============>",el
30         if el[0].startswith('filters'):
31             o.filters[el[0][8:-1]] = el[1]
32         elif el[0].startswith('params'):
33             print "#======> 0 ", el[0]
34             #print "#======>", el[0][7:8]
35             #print "#======>", el[0][10:-1]
36             print "#======> 1 ", el[1]
37             #o.params = req_items.getlist('params[]')
38             #o.params.append({el[0]:el[1]})
39
40             #params[key][]
41             if (el[0][-2:-1] == '[]') :
42                 o.params.append({el[0][7:-3]:",".join(el[1])})
43             else :
44                 #params[key]
45                 o.params.append({el[0][7:-1]:el[1]})
46             
47             print "o.params = ",o.params
48             
49         elif el[0].startswith('fields'):
50             o.fields=req_items.getlist('fields[]')
51         elif el[0].startswith('options'):
52             o.options = req_items.getlist('options[]')
53     
54     try:
55         response = o.update()
56
57         if response :
58             return success('record updated')
59         else :
60             return error('an error has occurred')
61  
62     except Exception, e:
63         return error("exception:"+str(e))
64