1 from manifold.core.query import Query
3 from django.views.generic.base import TemplateView
5 from unfold.loginrequired import LoginRequiredView
6 from django.http import HttpResponse
8 from manifold.core.query import Query, AnalyzedQuery
9 from manifoldapi.manifoldapi import execute_query
11 from string import join
15 def dispatch(request, object_type, object_name):
18 'platform' : platform,
24 if (object_type == 'platform') :
25 object_type = 'local:platform'
26 object_properties = ['platform', 'platform_longname', 'platform_url', 'platform_description','gateway_type'];
27 return switch.get('platform', error)(request, object_name, object_properties)
29 query = Query.get('local:object').filter_by('table', '==', object_type).select('column.name')
30 results = execute_query(request, query)
32 object_properties = []
33 for r in results[0]['column'] :
34 object_properties.append(r['name'])
37 return switch.get(object_type, error)(request, object_name, object_properties)
39 # if request.method == 'GET':
40 # return switch.get(request, object_type, object_name, object_properties)
41 # elif request.method == 'POST':
42 # return post(request, object_type, object_name)
44 def platform(request, object_name, object_properties):
45 query = Query().get('local:platform').filter_by('disabled', '==', '0').select(object_properties)
46 return send(request, execute_query(request, query), object_properties)
48 def slice(request, object_name, object_properties):
49 query = Query().get('slice').filter_by('user.user_hrn', '==', '$user_hrn').select(object_properties)
50 return send(request, execute_query(request, query), object_properties)
52 def user(request, object_name, object_properties):
53 query = Query().get('user').filter_by('user_hrn', '==', '$user_hrn').select(object_properties)
54 return send(request, execute_query(request, query), object_properties)
56 def send(request, response, object_properties):
57 if request.path.split('/')[1] == 'rest' :
58 response_data = response
59 elif request.path.split('/')[1] == 'table' :
60 response_data = response
61 elif request.path.split('/')[1] == 'datatable' :
63 response_data['columns'] = object_properties
64 response_data['labels'] = object_properties
65 #response_data['labels'] = [ 'Platform', 'Name', 'Url', 'Description','Gateway Type' ]
66 response_data['data'] = []
67 response_data['total'] = len(response)
70 for p in object_properties :
74 response_data['data'].append(d)
75 #response_data['data'].append([ r['platform'], r['platform_longname'], r['platform_url'], r['platform_description'], r['gateway_type'] ])
77 return HttpResponse(json.dumps(response_data), content_type="application/json")
79 def error(request, object_name, object_properties):
80 return HttpResponse(json.dumps({'error' : 'an error has occurred'}), content_type="application/json")