diff roundup/rest.py @ 5579:2814d95cfec2 REST-rebased

Improve props_from_args .. to skip initializing invalid property of the class. committer: Ralf Schlatterbeck <rsc@runtux.com>
author Chau Nguyen <dangchau1991@yahoo.com>
date Wed, 30 Jan 2019 10:26:34 +0100
parents c2214d0c9df8
children d5a54b1851aa
line wrap: on
line diff
--- a/roundup/rest.py	Wed Jan 30 10:26:34 2019 +0100
+++ b/roundup/rest.py	Wed Jan 30 10:26:34 2019 +0100
@@ -18,13 +18,15 @@
 
 
 def props_from_args(db, cl, args, itemid=None):
+    class_props = cl.properties.keys()
     props = {}
+    # props = dict.fromkeys(class_props, None)
+
     for arg in args:
-        try:
-            key = arg.name
-            value = arg.value
-        except ValueError:
-            raise UsageError('argument "%s" not propname=value' % arg)
+        key = arg.name
+        value = arg.value
+        if key not in class_props:
+            continue
         if isinstance(key, unicode):
             try:
                 key = key.encode('ascii')
@@ -35,8 +37,8 @@
         if value:
             try:
                 props[key] = hyperdb.rawToHyperdb(db, cl, itemid, key, value)
-            except hyperdb.HyperdbValueError:
-                pass  # pass if a parameter is not a property of the class
+            except hyperdb.HyperdbValueError, msg:
+                raise UsageError(msg)
         else:
             props[key] = None
 

Roundup Issue Tracker: http://roundup-tracker.org/