Class: Nextcloud::Ruby::Directory

Inherits:
Object
  • Object
show all
Defined in:
lib/nextcloud/ruby/directory.rb

Constant Summary collapse

FIND_XML =
'<?xml version="1.0"?>
<d:propfind
  xmlns:d="DAV:"
  xmlns:oc="http://owncloud.org/ns"
  xmlns:nc="http://nextcloud.org/ns">
  <d:prop>
    <oc:fileid />
  </d:prop>
</d:propfind>'.freeze

Class Method Summary collapse

Class Method Details

.create(path) ⇒ Object



15
16
17
18
19
# 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) ⇒ Object



21
22
23
24
25
# 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) ⇒ Object



27
28
29
30
31
32
# 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) ⇒ Object



34
35
36
37
38
39
40
# 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