class Egnyte::Group
Attributes
displayName[RW]
id[R]
members[RW]
Public Class Methods
all(session)
click to toggle source
# File lib/egnyte/group.rb, line 57 def self.all(session) self.where(session) end
create(session, params)
click to toggle source
# File lib/egnyte/group.rb, line 61 def self.create(session, params) group = self.new(session, params) group.save end
delete(session, id)
click to toggle source
# File lib/egnyte/group.rb, line 137 def self.delete(session, id) session.delete("#{self.group_path(session)}/#{id}", return_parsed_response=true) end
find(session, id)
click to toggle source
# File lib/egnyte/group.rb, line 74 def self.find(session, id) response = session.get("#{self.group_path(session)}/#{id}", return_parsed_response=true) self.new(session, response) end
find_by_name(session, displayName)
click to toggle source
# File lib/egnyte/group.rb, line 79 def self.find_by_name(session, displayName) self.where(session, {:displayName => displayName}).first end
group_path(session)
click to toggle source
# File lib/egnyte/group.rb, line 180 def self.group_path(session) "https://#{session.domain}.#{EGNYTE_DOMAIN}/#{session.api}/v2/groups" end
new(session, params)
click to toggle source
# File lib/egnyte/group.rb, line 41 def initialize(session, params) @session = session if params.is_a? String @displayName = params elsif params.is_a? Hash params.each do |k,v| if k == "name" @displayName = v else instance_variable_set("@#{k}", v) end end end @members = [] if @members.nil? end
search(session, search_string)
click to toggle source
# File lib/egnyte/group.rb, line 104 def self.search(session, search_string) group_list = self.all(session) result_list = [] group_list.each do |user| catch(:found) do user.instance_variables.each do |ivar| value = user.instance_variable_get(ivar).to_s if value.match(search_string) result_list << user throw :found end end end end result_list end
where(session, params=nil)
click to toggle source
# File lib/egnyte/group.rb, line 83 def self.where(session, params=nil) startIndex = 1 group_count = nil itemsPerPage = 100 group_list = [] base_url = self.group_path(session) base_url += Egnyte::Helper.params_to_filter_string(params) if params while startIndex == 1 || group_count > startIndex url = base_url url += params.nil? ? '?' : '&' url += "startIndex=#{startIndex}&count=#{itemsPerPage}" parsed_body = session.get(url) parsed_body["resources"].each do |group_hash| group_list << self.new(session, group_hash) end group_count = parsed_body["totalResults"] startIndex += itemsPerPage end group_list end
Public Instance Methods
delete()
click to toggle source
# File lib/egnyte/group.rb, line 133 def delete Egnyte::Group.delete(@session, @id) end
group_path()
click to toggle source
# File lib/egnyte/group.rb, line 176 def group_path Egnyte::Group.group_path(@session) end
missing_attributes()
click to toggle source
# File lib/egnyte/group.rb, line 145 def missing_attributes missing = @@required_attributes.collect do |param| param unless instance_variable_get("@#{param}") end missing.compact end
name()
click to toggle source
# File lib/egnyte/group.rb, line 66 def name @displayName end
name=(name)
click to toggle source
# File lib/egnyte/group.rb, line 70 def name=(name) @displayName = name end
save()
click to toggle source
# File lib/egnyte/group.rb, line 121 def save raise Egnyte::MissingAttribute.new(missing_attributes) unless valid? response = '' if @id.nil? or @id.to_s.empty? response = @session.post(group_path, to_json_for_api_call) @id = response['id'] else response = @session.put("#{group_path}/#{@id}", to_json_for_api_call) end Egnyte::Group.new(@session, response) end
to_hash()
click to toggle source
# File lib/egnyte/group.rb, line 152 def to_hash hash = to_hash_for_api_call hash[:id] = @id hash end
to_hash_for_api_call()
click to toggle source
# File lib/egnyte/group.rb, line 162 def to_hash_for_api_call hash = {} hash[:displayName] = @displayName hash[:members] = [] @members.each do |group_member| hash[:members] << {"value" => group_member} end hash end
to_json()
click to toggle source
# File lib/egnyte/group.rb, line 158 def to_json to_hash.to_json end
to_json_for_api_call()
click to toggle source
# File lib/egnyte/group.rb, line 172 def to_json_for_api_call to_hash_for_api_call.to_json end
valid?()
click to toggle source
# File lib/egnyte/group.rb, line 141 def valid? return missing_attributes.size < 1 end