@@ -19,21 +19,22 @@ def property_of(
1919 name : str = None ,
2020 readonly = False ,
2121 description = None ,
22+ _legacy = False , # Old structure where POST is used to write property
2223):
2324
2425 # Create a class name
2526 if not name :
2627 name = type (property_object ).__name__ + f"_{ property_name } "
2728
2829 # Create inner functions
29- def _get (self ):
30+ def _read (self ):
3031 return getattr (property_object , property_name )
3132
32- def _post (self , args ):
33+ def _write (self , args ):
3334 setattr (property_object , property_name , args )
3435 return getattr (property_object , property_name )
3536
36- def _put (self , args ):
37+ def _update (self , args ):
3738 getattr (property_object , property_name ).update (args )
3839 return getattr (property_object , property_name )
3940
@@ -44,17 +45,23 @@ def _put(self, args):
4445 {
4546 "property_object" : property_object ,
4647 "property_name" : property_name ,
47- "get" : _get ,
48+ "get" : _read ,
4849 },
4950 )
5051
5152 # Override read-write capabilities
5253 if not readonly :
53- generated_class .post = _post
54- generated_class .methods .add ("POST" )
55- # Enable PUT requests for dictionaries
54+ # Enable update PUT requests for dictionaries
5655 if type (getattr (property_object , property_name )) is dict :
57- generated_class .put = _put
56+ generated_class .put = _update
57+ generated_class .methods .add ("PUT" )
58+ # If legacy mode, use POST to write property
59+ elif _legacy :
60+ generated_class .post = _write
61+ generated_class .methods .add ("POST" )
62+ # Normally, use PUT to write property
63+ else :
64+ generated_class .put = _write
5865 generated_class .methods .add ("PUT" )
5966
6067 # Add decorators for arguments etc
0 commit comments