Allow creation of empty collection via PUT

This commit is contained in:
Unrud 2016-05-29 01:18:29 +02:00
parent 28e643dec1
commit 4861b79878

View File

@ -547,20 +547,25 @@ class Application:
# Case 2: Item and ETag precondition verified: Modify item
# Case 3: Item and no Etag precondition: Force modifying item
items = list(vobject.readComponents(content or ""))
if items:
if item:
# PUT is modifying an existing item
if item:
# PUT is modifying an existing item
if items:
new_item = collection.update(item_name, items[0])
elif item_name:
# PUT is adding a new item
else:
new_item = None
elif item_name:
# PUT is adding a new item
if items:
new_item = collection.upload(item_name, items[0])
else:
# PUT is replacing the whole collection
collection.delete()
new_item = self.Collection.create_collection(
environ["PATH_INFO"], items)
if new_item:
headers["ETag"] = new_item.etag
new_item = None
else:
# PUT is replacing the whole collection
collection.delete()
new_item = self.Collection.create_collection(
environ["PATH_INFO"], items)
if new_item:
headers["ETag"] = new_item.etag
status = client.CREATED
else:
# PUT rejected in all other cases