Mercurial > hg > ChinaGisRestApi
comparison RestDbInterface.py @ 30:51db9e78bf98
working on field types
author | casties |
---|---|
date | Mon, 30 Aug 2010 17:29:58 +0200 |
parents | 0b9f8cca6744 |
children | 6d2055f1b4fa |
comparison
equal
deleted
inserted
replaced
29:0b9f8cca6744 | 30:51db9e78bf98 |
---|---|
76 HTML_schema_table = PageTemplateFile('zpt/HTML_schema_table', globals()) | 76 HTML_schema_table = PageTemplateFile('zpt/HTML_schema_table', globals()) |
77 JSONHTML_index = PageTemplateFile('zpt/JSONHTML_index', globals()) | 77 JSONHTML_index = PageTemplateFile('zpt/JSONHTML_index', globals()) |
78 JSONHTML_schema = PageTemplateFile('zpt/JSONHTML_schema', globals()) | 78 JSONHTML_schema = PageTemplateFile('zpt/JSONHTML_schema', globals()) |
79 JSONHTML_schema_table = PageTemplateFile('zpt/JSONHTML_schema_table', globals()) | 79 JSONHTML_schema_table = PageTemplateFile('zpt/JSONHTML_schema_table', globals()) |
80 # JSON_* templates are scripts | 80 # JSON_* templates are scripts |
81 | 81 def JSON_index(self,data): |
82 | 82 """JSON index function""" |
83 self.REQUEST.RESPONSE.setHeader("Content-Type", "application/json") | |
84 json.dump(data, self.REQUEST.RESPONSE) | |
85 | |
86 def JSON_schema(self,data,schema): | |
87 """JSON index function""" | |
88 self.REQUEST.RESPONSE.setHeader("Content-Type", "application/json") | |
89 json.dump(data, self.REQUEST.RESPONSE) | |
90 | |
91 def JSON_schema_table(self,data,tablename): | |
92 """JSON index function""" | |
93 self.REQUEST.RESPONSE.setHeader("Content-Type", "application/json") | |
94 json.dump(data, self.REQUEST.RESPONSE) | |
95 | |
83 | 96 |
84 def __init__(self, id, title, connection_id=None): | 97 def __init__(self, id, title, connection_id=None): |
85 """init""" | 98 """init""" |
86 self.id = id | 99 self.id = id |
87 self.title = title | 100 self.title = title |
226 file = REQUEST.get("create_table_file",None) | 239 file = REQUEST.get("create_table_file",None) |
227 if file is None: | 240 if file is None: |
228 RESPONSE.setStatus(400) | 241 RESPONSE.setStatus(400) |
229 return | 242 return |
230 | 243 |
231 fields = REQUEST.get("create_table_fields",None) | 244 fields = None |
232 logging.debug("put with schema=%s table=%s file=%s fields=%s"%(schema,tablename,file,repr(fields))) | 245 fieldsStr = REQUEST.get("create_table_fields",None) |
246 logging.debug("put with schema=%s table=%s file=%s fields=%s"%(schema,tablename,file,repr(fieldsStr))) | |
247 if fieldsStr is not None: | |
248 # unpack fields | |
249 fields = [{"name":n, "type": t} for (n,t) in [f.split(":") for f in fieldsStr.split(",")]] | |
233 ret = self.createTableFromXML(schema, tablename, file, fields) | 250 ret = self.createTableFromXML(schema, tablename, file, fields) |
234 # return the result as JSON | 251 # return the result as JSON |
235 format = REQUEST.get("format","JSON") | 252 format = REQUEST.get("format","JSON") |
236 if format == "JSON": | 253 if format == "JSON": |
237 RESPONSE.setHeader("Content-Type", "application/json") | 254 RESPONSE.setHeader("Content-Type", "application/json") |
329 logging.debug("getlistofschemas") | 346 logging.debug("getlistofschemas") |
330 # TODO: really look up schemas | 347 # TODO: really look up schemas |
331 data={'fields': (('schemas',),), 'rows': [('public',),]} | 348 data={'fields': (('schemas',),), 'rows': [('public',),]} |
332 return data | 349 return data |
333 | 350 |
334 def JSON_index(self,data): | |
335 """JSON index function""" | |
336 self.REQUEST.RESPONSE.setHeader("Content-Type", "application/json") | |
337 json.dump(data, self.REQUEST.RESPONSE) | |
338 | |
339 def JSON_schema(self,data,schema): | |
340 """JSON index function""" | |
341 self.REQUEST.RESPONSE.setHeader("Content-Type", "application/json") | |
342 json.dump(data, self.REQUEST.RESPONSE) | |
343 | |
344 def JSON_schema_table(self,data,tablename): | |
345 """JSON index function""" | |
346 self.REQUEST.RESPONSE.setHeader("Content-Type", "application/json") | |
347 json.dump(data, self.REQUEST.RESPONSE) | |
348 | |
349 def checkTable(self,resultFormat,schema,table,REQUEST=None,RESPONSE=None): | 351 def checkTable(self,resultFormat,schema,table,REQUEST=None,RESPONSE=None): |
350 """check the table. | 352 """check the table. |
351 returns valid data fields and table name.""" | 353 returns valid data fields and table name.""" |
352 if REQUEST is None: | 354 if REQUEST is None: |
353 REQUEST = self.REQUEST | 355 REQUEST = self.REQUEST |