class Nextcloud::Ruby::Directory

Constants

FIND_XML

Public Class Methods

create(path) click to toggle source
# File lib/nextcloud/ruby/directory.rb, line 15
def create(path)
  uri = Addressable::URI
        .parse("files/#{Nextcloud::Ruby.configuration.username}/#{path}")
  Api.request(:mkcol, uri)
end
delete(path) click to toggle source
# File lib/nextcloud/ruby/directory.rb, line 21
def delete(path)
  uri = Addressable::URI
        .parse("files/#{Nextcloud::Ruby.configuration.username}/#{path}")
  Api.request(:delete, uri)
end
find(path) click to toggle source
# File lib/nextcloud/ruby/directory.rb, line 27
def find(path)
  uri = Addressable::URI
        .parse("files/#{Nextcloud::Ruby.configuration.username}/#{path}")
  response = Api.request(:propfind, uri, FIND_XML)
  response.ok? ? parse_directory(response, path) : nil
end
set_tag(directory, tag) click to toggle source
# File lib/nextcloud/ruby/directory.rb, line 34
def set_tag(directory, tag)
  return Response.new('', 400) unless directory && tag
  uri = Addressable::URI
        .join(Nextcloud::Ruby.configuration.dav_url.path.to_s,
              "systemtags-relations/files/#{directory.id}/#{tag.id}")
  Api.request(:put, uri)
end

Private Class Methods

parse_directory(response, path) click to toggle source
# File lib/nextcloud/ruby/directory.rb, line 44
def parse_directory(response, path)
  id = response.body.xpath('//oc:fileid')[0].text.to_i
  Nextcloud::Ruby::Models::Directory.new(id, path)
end