class Readiness::Zendesk::OrganizationMemberships

@since 1.0.0
@author Jason Colyer
Defines the class OrganizationMemberships within the module {Readiness::Zendesk}.
#

def self.create!(client, membership)

Other tags:
    See: https://developer.zendesk.com/api-reference/ticketing/organizations/organization_memberships/#create-membership - Zendesk API > Organization Memberships > Create Membership

Returns:
  • (Object) - An instance of {Readiness::Zendesk::OrganizationMemberships}

Parameters:
  • membership (Object) -- An instance of {Readiness::Zendesk::OrganizationMemberships}
  • client (Object) -- An instance of {Readiness::Zendesk::Client}

Other tags:
    Since: - 1.0.0

Other tags:
    Author: - Jason Colyer
def self.create!(client, membership)
  response = client.connection.post 'organization_memberships', to_clean_json_with_key(membership, 'organization_membership')
  handle_request_error(1, 'Zendesk', response.status, { action: 'Create organization membership', message: Oj.load(response.body)}) unless response.status == 201
  OrganizationMemberships.new(Oj.load(response.body)['organization_membership'])
end

def self.create_many!(client, memberships)

Other tags:
    See: https://developer.zendesk.com/api-reference/ticketing/organizations/organization_memberships/#create-many-memberships - Zendesk API > Organization Memberships > Create Many Memberships

Returns:
  • (object) - A {Readiness::Zendesk::JobStatuses} instance

Parameters:
  • memberships (Array) -- An array of {Readiness::Zendesk::OrganizationMemberships} instances
  • client (Object) -- An instance of {Readiness::Zendesk::Client}

Other tags:
    Since: - 1.0.0

Other tags:
    Author: - Jason Colyer
def self.create_many!(client, memberships)
  data = { organization_memberships: memberships.map { |t| to_hash(t).compact } }.to_json
  response = client.connection.post('organization_memberships/create_many', data)
  handle_request_error(1, 'Zendesk', response.status, { action: 'Create many organization memberships', message: Oj.load(response.body)}) unless response.status == 200
  JobStatuses.new(Oj.load(response.body)['job_status'])
end

def self.delete!(client, membership)

Other tags:
    See: hhttps://developer.zendesk.com/api-reference/ticketing/organizations/organization_memberships/#delete-membership - Zendesk API > Organization Memberships > Delete Membership

Returns:
  • (Boolean) -

Parameters:
  • membership (Object) -- An instance of {Readiness::Zendesk::OrganizationMemberships}
  • client (Object) -- An instance of {Readiness::Zendesk::Client}

Other tags:
    Since: - 1.0.0

Other tags:
    Author: - Jason Colyer
def self.delete!(client, membership)
  response = client.connection.delete "organization_memberships/#{membership.id}"
  handle_request_error(1, 'Zendesk', response.status, { action: 'Delete organization membership', message: Oj.load(response.body)}) unless response.status == 204
  true
end

def self.delete_many!(client, mids)

Other tags:
    See: https://developer.zendesk.com/api-reference/ticketing/organizations/organization_memberships/#bulk-delete-memberships - Zendesk API > Organization Memberships > Bulk Delete Memberships

Returns:
  • (object) - A {Readiness::Zendesk::JobStatuses} instance

Parameters:
  • mids (Array) -- An array of organization memberships IDs
  • client (Object) -- An instance of {Readiness::Zendesk::Client}

Other tags:
    Since: - 1.0.0

Other tags:
    Author: - Jason Colyer
def self.delete_many!(client, mids)
  response = client.connection.delete("organization_memberships/destroy_many?ids=#{mids.join(',')}")
  handle_request_error(1, 'Zendesk', response.status, { action: 'Delete many organization memberships', message: Oj.load(response.body)}) unless response.status == 200
  JobStatuses.new(Oj.load(response.body)['job_status'])
end

def self.find(client, oid)

Other tags:
    See: https://developer.zendesk.com/api-reference/ticketing/organizations/organization_memberships/#show-membership - Zendesk API > Organization Memberships > Show Membership

Returns:
  • (Hash) -

Parameters:
  • oid (Integer) -- The organization membership ID to find
  • client (Object) -- An instance of {Readiness::Zendesk::Client}

Other tags:
    Since: - 1.0.0

Other tags:
    Author: - Jason Colyer
def self.find(client, oid)
  response = client.connection.get("organization_memberships/#{oid}")
  handle_request_error(0, 'Zendesk', response.status,  { action: 'get', id: oid }) unless response.status == 200
  return OrganizationMemberships.new(Oj.load(response.body)['organization_membership']) if response.status == 200
  Oj.load(response.body)
end

def self.find!(client, oid)

Other tags:
    See: https://developer.zendesk.com/api-reference/ticketing/organizations/organization_memberships/#show-membership - Zendesk API > Organization Memberships > Show Membership

Returns:
  • (Hash) -

Parameters:
  • oid (Integer) -- The organization membership ID to find
  • client (Object) -- An instance of {Readiness::Zendesk::Client}

Other tags:
    Since: - 1.0.0

Other tags:
    Author: - Jason Colyer
def self.find!(client, oid)
  response = client.connection.get("organization_memberships/#{oid}")
  handle_request_error(1, 'Zendesk', response.status, { action: 'Find organization membership', id: oid }) unless response.status == 200
  OrganizationMemberships.new(Oj.load(response.body)['organization_membership'])
end

def self.list(client)

Other tags:
    See: https://developer.zendesk.com/api-reference/ticketing/organizations/organization_memberships/#list-memberships - Zendesk API > Organization Memberships > List Memberships

Returns:
  • (Array) -

Parameters:
  • client (Object) -- An instance of {Readiness::Zendesk::Client}

Other tags:
    Since: - 1.0.0

Other tags:
    Author: - Jason Colyer
def self.list(client)
  response = client.connection.get("organization_memberships?page[size]=100")
  handle_request_error(0, 'Zendesk', response.status) unless response.status == 200
  Oj.load(response.body)['organization_memberships'].map { |m| OrganizationMemberships.new(m) }
end

def self.list_many(client, limit = 0)

Other tags:
    See: https://developer.zendesk.com/api-reference/ticketing/organizations/organization_memberships/#list-memberships - Zendesk API > Organization Memberships > List Memberships

Returns:
  • (Array) -

Parameters:
  • limit (Integer) -- The number of pages to stop at. Using 0 means to list all.
  • client (Object) -- An instance of {Readiness::Zendesk::Client}

Other tags:
    Since: - 1.0.0

Other tags:
    Author: - Jason Colyer
def self.list_many(client, limit = 0)
  array = []
  opts = "page[size]=100"
  loop do
    response = client.connection.get("organization_memberships?#{opts}")
    handle_request_error(0, 'Zendesk', response.status) unless response.status == 200
    body = Oj.load(response.body)
    array += body['organization_memberships'].map { |o| OrganizationMemberships.new(o) }
    break if limit != 0 && array.count >= (limit * 100)
    break unless body['meta']['has_more']
    opts = body['links'] ['next'].split('?').last
  end
  array
end

def initialize(object = {})

Parameters:
  • object (Object) -- An instance of {Readiness::Zendesk::OrganizationMemberships}

Other tags:
    Since: - 1.0.0

Other tags:
    Author: - Jason Colyer
def initialize(object = {})
  @id = object['id']
  @default = object['default']
  @organization_id = object['organization_id']
  @organization_name = object['organization_name']
  @user_id = object['user_id']
  @view_tickets = object['view_tickets']
end