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