Class: Egnyte::Group
- Inherits:
-
Object
- Object
- Egnyte::Group
- Defined in:
- lib/egnyte/group.rb
Constant Summary collapse
- @@required_attributes =
['displayName']
Instance Attribute Summary collapse
-
#displayName ⇒ Object
Returns the value of attribute displayName.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#members ⇒ Object
Returns the value of attribute members.
Class Method Summary collapse
- .all(session) ⇒ Object
- .create(session, params) ⇒ Object
- .delete(session, id) ⇒ Object
- .find(session, id) ⇒ Object
- .find_by_name(session, displayName) ⇒ Object
- .group_path(session) ⇒ Object
- .search(session, search_string) ⇒ Object
- .where(session, params = nil) ⇒ Object
Instance Method Summary collapse
- #delete ⇒ Object
- #group_path ⇒ Object
-
#initialize(session, params) ⇒ Group
constructor
A new instance of Group.
- #missing_attributes ⇒ Object
- #name ⇒ Object
- #name=(name) ⇒ Object
- #save ⇒ Object
- #to_hash ⇒ Object
- #to_hash_for_api_call ⇒ Object
- #to_json ⇒ Object
- #to_json_for_api_call ⇒ Object
- #valid? ⇒ Boolean
Constructor Details
#initialize(session, params) ⇒ Group
Returns a new instance of Group.
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# 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 |
Instance Attribute Details
#displayName ⇒ Object
Returns the value of attribute displayName.
38 39 40 |
# File 'lib/egnyte/group.rb', line 38 def displayName @displayName end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
39 40 41 |
# File 'lib/egnyte/group.rb', line 39 def id @id end |
#members ⇒ Object
Returns the value of attribute members.
38 39 40 |
# File 'lib/egnyte/group.rb', line 38 def members @members end |
Class Method Details
.all(session) ⇒ Object
57 58 59 |
# File 'lib/egnyte/group.rb', line 57 def self.all(session) self.where(session) end |
.create(session, params) ⇒ Object
61 62 63 64 |
# File 'lib/egnyte/group.rb', line 61 def self.create(session, params) group = self.new(session, params) group.save end |
.delete(session, id) ⇒ Object
137 138 139 |
# 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) ⇒ Object
74 75 76 77 |
# 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) ⇒ Object
79 80 81 |
# File 'lib/egnyte/group.rb', line 79 def self.find_by_name(session, displayName) self.where(session, {:displayName => displayName}).first end |
.group_path(session) ⇒ Object
180 181 182 |
# File 'lib/egnyte/group.rb', line 180 def self.group_path(session) "https://#{session.domain}.#{EGNYTE_DOMAIN}/#{session.api}/v2/groups" end |
.search(session, search_string) ⇒ Object
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# 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) ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# 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 |
Instance Method Details
#delete ⇒ Object
133 134 135 |
# File 'lib/egnyte/group.rb', line 133 def delete Egnyte::Group.delete(@session, @id) end |
#group_path ⇒ Object
176 177 178 |
# File 'lib/egnyte/group.rb', line 176 def group_path Egnyte::Group.group_path(@session) end |
#missing_attributes ⇒ Object
145 146 147 148 149 150 |
# 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 ⇒ Object
66 67 68 |
# File 'lib/egnyte/group.rb', line 66 def name @displayName end |
#name=(name) ⇒ Object
70 71 72 |
# File 'lib/egnyte/group.rb', line 70 def name=(name) @displayName = name end |
#save ⇒ Object
121 122 123 124 125 126 127 128 129 130 131 |
# 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 ⇒ Object
152 153 154 155 156 |
# 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 ⇒ Object
162 163 164 165 166 167 168 169 170 |
# 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 ⇒ Object
158 159 160 |
# File 'lib/egnyte/group.rb', line 158 def to_json to_hash.to_json end |
#to_json_for_api_call ⇒ Object
172 173 174 |
# File 'lib/egnyte/group.rb', line 172 def to_json_for_api_call to_hash_for_api_call.to_json end |
#valid? ⇒ Boolean
141 142 143 |
# File 'lib/egnyte/group.rb', line 141 def valid? return missing_attributes.size < 1 end |