Mercurial > p > roundup > code
comparison roundup/rest.py @ 5564:da6b5724314f REST-rebased
Added Partial PUT
committer: Ralf Schlatterbeck <rsc@runtux.com>
| author | Chau Nguyen <dangchau1991@yahoo.com> |
|---|---|
| date | Wed, 30 Jan 2019 10:26:34 +0100 |
| parents | 9a1614ff752d |
| children | b3d5085dd04e |
comparison
equal
deleted
inserted
replaced
| 5563:9a1614ff752d | 5564:da6b5724314f |
|---|---|
| 87 | 87 |
| 88 def put_collection(self, class_name, input): | 88 def put_collection(self, class_name, input): |
| 89 raise Reject('Invalid request') | 89 raise Reject('Invalid request') |
| 90 | 90 |
| 91 def put_element(self, class_name, item_id, input): | 91 def put_element(self, class_name, item_id, input): |
| 92 raise NotImplementedError | 92 class_obj = self.db.getclass(class_name) |
| 93 | |
| 94 input_data = ["%s=%s" % (item.name, item.value) for item in input.value] | |
| 95 props = xmlrpc.props_from_args(self.db, class_obj, input_data, item_id) | |
| 96 for p in props.iterkeys(): | |
| 97 if not self.db.security.hasPermission('Edit', self.db.getuid(), | |
| 98 class_name, p, item_id): | |
| 99 raise Unauthorised('Permission to edit %s of %s%s denied' % | |
| 100 (p, class_name, item_id)) | |
| 101 try: | |
| 102 result = class_obj.set(item_id, **props) | |
| 103 self.db.commit() | |
| 104 except (TypeError, IndexError, ValueError), message: | |
| 105 raise UsageError(message) | |
| 106 | |
| 107 result['id'] = item_id | |
| 108 return result | |
| 93 | 109 |
| 94 def delete_collection(self, class_name, input): | 110 def delete_collection(self, class_name, input): |
| 95 if not self.db.security.hasPermission('Delete', self.db.getuid(), | 111 if not self.db.security.hasPermission('Delete', self.db.getuid(), |
| 96 class_name): | 112 class_name): |
| 97 raise Unauthorised('Permission to delete %s denied' % class_name) | 113 raise Unauthorised('Permission to delete %s denied' % class_name) |
