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