Update timestamps for all parent directories on PUT requests (fixes #11)

This commit is contained in:
2012-10-07 14:54:50 +02:00
parent 84b9e0561a
commit 6f975c6c45
2 changed files with 14 additions and 16 deletions

View File

@@ -75,8 +75,7 @@ module RemoteStorage
object.reload
timestamp = object.last_modified.to_i
create_missing_directory_objects(user, directory, timestamp)
update_directory_object(user, directory, timestamp)
update_all_directory_objects(user, directory, timestamp)
rescue ::Riak::HTTPFailedRequest
halt 422
end
@@ -172,20 +171,16 @@ module RemoteStorage
run
end
def create_missing_directory_objects(user, directory, timestamp)
def update_all_directory_objects(user, directory, timestamp)
parent_directories = directory.split("/")
parent_directories.pop
while parent_directories.any?
parent_directory = parent_directories.join("/")
unless directory_bucket.exist?("#{user}:#{parent_directory}")
update_directory_object(user, parent_directory, timestamp)
end
update_directory_object(user, parent_directory, timestamp)
parent_directories.pop
end
unless directory_bucket.exist?("#{user}:")
update_directory_object(user, "", timestamp)
end
update_directory_object(user, "", timestamp)
end
def update_directory_object(user, directory, timestamp)