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
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