Class: Podio::OrganizationMember

Inherits:
ActivePodio::Base show all
Defined in:
lib/podio/models/organization_member.rb

Overview

Encapsulates a user’s indirect membership (through spaces) of an organization.

Instance Attribute Summary

Attributes inherited from ActivePodio::Base

#attributes

Class Method Summary collapse

Methods inherited from ActivePodio::Base

#==, #[], #[]=, #api_friendly_ref_type, #as_json, collection, delegate_to_hash, has_many, has_one, #hash, #initialize, #initialize_attributes, klass_from_string, list, member, #new_record?, output_attribute_as_json, #parent_model, #persisted?, property, #to_param

Constructor Details

This class inherits a constructor from ActivePodio::Base

Class Method Details

.delete(org_id, user_id) ⇒ Object



42
43
44
# File 'lib/podio/models/organization_member.rb', line 42

def delete(org_id, user_id)
  Podio.connection.delete("/org/#{org_id}/member/#{user_id}").status
end

.delete_info(org_id, user_id) ⇒ Object



51
52
53
54
55
56
57
# File 'lib/podio/models/organization_member.rb', line 51

def delete_info(org_id, user_id)
  result = Podio.connection.get("/org/#{org_id}/member/#{user_id}/end_member_info").body
  %w{ to_promote to_remove to_delete }.each do |type|
    result[type].collect! { |member| self.klass_from_string('SpaceMember').new(member) } if result[type].present?
  end
  result
end

.export(org_id, options = {}) ⇒ Object



30
31
32
33
34
# File 'lib/podio/models/organization_member.rb', line 30

def export(org_id, options = {})
  Podio.connection.get { |req|
    req.url("/org/#{org_id}/member/export", options)
  }.body
end

.find(org_id, user_id) ⇒ Object



37
38
39
# File 'lib/podio/models/organization_member.rb', line 37

def find(org_id, user_id)
  member Podio.connection.get("/org/#{org_id}/member/#{user_id}").body
end

.find_all_for_org(org_id, options = {}) ⇒ Object



17
18
19
20
21
# File 'lib/podio/models/organization_member.rb', line 17

def find_all_for_org(org_id, options = {})
  list Podio.connection.get { |req|
    req.url("/org/#{org_id}/member/", options)
  }.body
end

.leave(org_id) ⇒ Object



47
48
49
# File 'lib/podio/models/organization_member.rb', line 47

def leave(org_id)
  Podio.connection.post("/org/#{org_id}/leave").status
end

.make_admin(org_id, user_id) ⇒ Object



60
61
62
63
64
65
66
# File 'lib/podio/models/organization_member.rb', line 60

def make_admin(org_id, user_id)
  response = Podio.connection.post do |req|
    req.url "/org/#{org_id}/admin/"
    req.body = { :user_id => user_id.to_i }
  end
  response.status
end

.remove_admin(org_id, user_id) ⇒ Object



69
70
71
# File 'lib/podio/models/organization_member.rb', line 69

def remove_admin(org_id, user_id)
  Podio.connection.delete("/org/#{org_id}/admin/#{user_id}").status
end

.search(org_id, query, options = {}) ⇒ Object



23
24
25
26
27
28
# File 'lib/podio/models/organization_member.rb', line 23

def search(org_id, query, options = {})
  options[:query] = query
  list Podio.connection.get { |req|
    req.url("/org/#{org_id}/member/search/", options)
  }.body
end