浏览代码

[beeswax] Add error_handler to sample, indexes, and functions endpoints

Jenny Kim 10 年之前
父节点
当前提交
6335c5e341
共有 1 个文件被更改,包括 26 次插入35 次删除
  1. 26 35
      apps/beeswax/src/beeswax/api.py

+ 26 - 35
apps/beeswax/src/beeswax/api.py

@@ -663,64 +663,55 @@ def describe_table(request, database, table):
     raise PopupException(_('Problem accessing table metadata'), detail=e)
 
 
+@error_handler
 def get_sample_data(request, database, table):
   query_server = dbms.get_query_server_config(get_app_name(request))
   db = dbms.get(request.user, query_server)
   response = {'status': -1, 'error_message': ''}
 
-  try:
-    table_obj = db.get_table(database, table)
-    sample_data = db.get_sample(database, table_obj)
-    if sample_data:
-      response['status'] = 0
-      response['headers'] = sample_data.cols()
-      response['rows'] = escape_rows(sample_data.rows(), nulls_only=True)
-    else:
-      response['error_message'] = _('Sample data took too long to be generated')
-  except Exception, ex:
-    error_message, logs = dbms.expand_exception(ex, db)
-    response['error_message'] = error_message
+  table_obj = db.get_table(database, table)
+  sample_data = db.get_sample(database, table_obj)
+  if sample_data:
+    response['status'] = 0
+    response['headers'] = sample_data.cols()
+    response['rows'] = escape_rows(sample_data.rows(), nulls_only=True)
+  else:
+    response['error_message'] = _('Sample data took too long to be generated')
 
   return JsonResponse(response)
 
 
+@error_handler
 def get_indexes(request, database, table):
   query_server = dbms.get_query_server_config(get_app_name(request))
   db = dbms.get(request.user, query_server)
   response = {'status': -1, 'error_message': ''}
 
-  try:
-    indexes = db.get_indexes(database, table)
-    if indexes:
-      response['status'] = 0
-      response['headers'] = indexes.cols()
-      response['rows'] = escape_rows(indexes.rows(), nulls_only=True)
-    else:
-      response['error_message'] = _('Index data took too long to be generated')
-  except Exception, ex:
-    error_message, logs = dbms.expand_exception(ex, db)
-    response['error_message'] = error_message
+  indexes = db.get_indexes(database, table)
+  if indexes:
+    response['status'] = 0
+    response['headers'] = indexes.cols()
+    response['rows'] = escape_rows(indexes.rows(), nulls_only=True)
+  else:
+    response['error_message'] = _('Index data took too long to be generated')
 
   return JsonResponse(response)
 
 
+@error_handler
 def get_functions(request):
   query_server = dbms.get_query_server_config(get_app_name(request))
   db = dbms.get(request.user, query_server)
   response = {'status': -1, 'error_message': ''}
 
-  try:
-    prefix = request.GET.get('prefix', None)
-    functions = db.get_functions(prefix)
-    if functions:
-      response['status'] = 0
-      rows = escape_rows(functions.rows(), nulls_only=True)
-      response['functions'] = [row[0] for row in rows]
-    else:
-      response['error_message'] = _('Fetching functions timed out.')
-  except Exception, ex:
-    error_message, logs = dbms.expand_exception(ex, db)
-    response['error_message'] = error_message
+  prefix = request.GET.get('prefix', None)
+  functions = db.get_functions(prefix)
+  if functions:
+    response['status'] = 0
+    rows = escape_rows(functions.rows(), nulls_only=True)
+    response['functions'] = [row[0] for row in rows]
+  else:
+    response['error_message'] = _('Fetching functions timed out.')
 
   return JsonResponse(response)