module OMGDAV::Mkcol

Public Instance Methods

call_mkcol(env) click to toggle source
# File lib/omgdav/mkcol.rb, line 11
def call_mkcol(env)
  bytes = drain_input(env)
  return r(415) if bytes > 0
  parts = path_split(env)
  return r(405) if col_resolve(parts)
  basename = parts.pop or return r(403)
  parent = col_resolve(parts) or return r(409)
  if node = node_lookup(parent[:id], basename)
    return r(403) unless node[:collection]
  else
    node = col_ensure(parent[:id], basename)
  end
  r(201)
rescue OMGDAV::TypeConflict
  r(409)
end