Generic ObjectRequest class can be used for the rest interface
[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     object_filters = {}
22     object_params = {}
23     result = {}
24     
25     if request.method == 'POST':
26         req_items = request.POST
27     elif request.method == 'GET':
28         #return error('only post request is supported')
29         req_items = request.GET
30
31     for el in req_items.items():
32         if el[0].startswith('filters'):
33             o.filters[el[0][8:-1]] = el[1]
34         elif el[0].startswith('params'):
35             o.addParams(req_items.getlist('params[]'))
36         elif el[0].startswith('columns'):
37             o.addFilters(req_items.getlist('columns[]'))
38         elif el[0].startswith('options'):
39             o.options = req_items.getlist('options[]')
40
41     try:
42         response = o.execute()
43
44         if response :
45             return success('record updated')
46         else :
47             return error('an error has occurred')
48  
49     except Exception, e:
50         return error(str(e))
51