浏览代码

[desktop] Improve the error message if api requests are malformed

Erick Tryzelaar 10 年之前
父节点
当前提交
c7fe666
共有 2 个文件被更改,包括 11 次插入0 次删除
  1. 10 0
      desktop/core/src/desktop/api.py
  2. 1 0
      desktop/core/src/desktop/api_tests.py

+ 10 - 0
desktop/core/src/desktop/api.py

@@ -223,6 +223,8 @@ def add_tag(request):
       response['docs'] = []
       response['owner'] = request.user.username
       response['status'] = 0
+    except KeyError, e:
+      response['message'] = _('Form is missing %s field') % e.message
     except Exception, e:
       response['message'] = force_unicode(e)
   else:
@@ -240,6 +242,8 @@ def tag(request):
       tag = DocumentTag.objects.tag(request.user, request_json['doc_id'], request_json.get('tag'), request_json.get('tag_id'))
       response['tag_id'] = tag.id
       response['status'] = 0
+    except KeyError, e:
+      response['message'] = _('Form is missing %s field') % e.message
     except Exception, e:
       response['message'] = force_unicode(e)
   else:
@@ -257,6 +261,8 @@ def update_tags(request):
       doc = DocumentTag.objects.update_tags(request.user, request_json['doc_id'], request_json['tag_ids'])
       response['doc'] = massage_doc_for_json(doc, request.user)
       response['status'] = 0
+    except KeyError, e:
+      response['message'] = _('Form is missing %s field') % e.message
     except Exception, e:
       response['message'] = force_unicode(e)
   else:
@@ -273,6 +279,8 @@ def remove_tag(request):
       DocumentTag.objects.delete_tag(request.POST['tag_id'], request.user)
       response['message'] = _('Project removed!')
       response['status'] = 0
+    except KeyError, e:
+      response['message'] = _('Form is missing %s field') % e.message
     except Exception, e:
       response['message'] = force_unicode(e)
   else:
@@ -294,6 +302,8 @@ def update_permissions(request):
       response['message'] = _('Permissions updated!')
       response['status'] = 0
       response['doc'] = massage_doc_for_json(doc, request.user)
+    except KeyError, e:
+      response['message'] = _('Form is missing %s field') % e.message
     except Exception, e:
       LOG.exception(e.message)
       response['message'] = force_unicode(e)

+ 1 - 0
desktop/core/src/desktop/api_tests.py

@@ -84,6 +84,7 @@ class TestDocModelTags():
     response = self.client.post("/desktop/api/tag/add_tag")
     content = json.loads(response.content)
     assert_equal(content['status'], -1, content)
+    assert_equal(content['message'], "Form is missing 'name' field", content)
 
     tag_id = self.add_tag('my_tag')