class Nextcloud::Ruby::Tag

Constants

ALL_XML

Public Class Methods

all() click to toggle source
# File lib/nextcloud/ruby/tag.rb, line 23
def all
  response = Api.request(:propfind, 'systemtags', ALL_XML)
  response.ok? ? parse_all(response) : nil
end
find(id) click to toggle source
# File lib/nextcloud/ruby/tag.rb, line 16
def find(id)
  uri = Addressable::URI
        .parse("systemtags/#{id}")
  response = Api.request(:propfind, uri, ALL_XML)
  response.ok? ? parse_tag(response.body.xpath('//d:prop')) : nil
end

Private Class Methods

parse_all(response) click to toggle source
# File lib/nextcloud/ruby/tag.rb, line 36
def parse_all(response)
  [].tap do |tags|
    response.body.xpath('//d:prop').each do |prop|
      tags << parse_tag(prop) unless parse_tag(prop).nil?
    end
  end
end
parse_tag(response) click to toggle source
# File lib/nextcloud/ruby/tag.rb, line 30
def parse_tag(response)
  id = response.xpath('./oc:id').text.to_i
  name = response.xpath('./oc:display-name').text
  Nextcloud::Ruby::Models::Tag.new(id, name) unless id.zero?
end