class ZendeskSupportAPI::DeletedTickets

Tickets class - developer.zendesk.com/rest_api/docs/support/tickets

Public Class Methods

deleted_sort_valid?(sort) click to toggle source

Determines if sort value is valid for delete requests

@param sort [String] The string to check @return [Boolean]

# File lib/zendesk_support_api/deleted_tickets.rb, line 68
def self.deleted_sort_valid?(sort)
  %w[id subject deleted_at].includes?(sort)
end
list_all_deleted(client) click to toggle source

Lists all deleted tickets

@param client [ZendeskSupportAPI::Client] The client instance to use @return [Array]

# File lib/zendesk_support_api/deleted_tickets.rb, line 92
def self.list_all_deleted(client)
  tickets = []
  page = 'deleted_tickets.json?page=1'
  until page.nil?
    res = client.request(:get, page)
    client.spinner("tickets (total: #{res['count']})", page.split('=').last)
    tickets += res['tickets']
    page = next_page(res)
  end
  puts ' ...done'
  tickets
end
list_deleted(client, sort = 'id', order = 'asc') click to toggle source

Lists deleted tickets (first 100)

@param client [ZendeskSupportAPI::Client] The client instance to use @param sort [String] The sort string to use @param order [String] The order string to use @return [Array]

# File lib/zendesk_support_api/deleted_tickets.rb, line 79
def self.list_deleted(client, sort = 'id', order = 'asc')
  return "Invalid sort '#{sort}'" unless delete_sort_valid?(sort)
  return "Invalid order '#{order}'" unless order_valid?(order)

  url = "deleted_tickets.json?#{sort_order(sort, order)}"
  client.request(:get, url)['deleted_tickets']
end
next_page(res) click to toggle source

Returns the string of the next_page for pagination

@param res [Hash] The Hash containing the response from a request @return [nil|String]

# File lib/zendesk_support_api/deleted_tickets.rb, line 38
def self.next_page(res)
  (res['next_page'].nil? ? nil : res['next_page'].split('/').last)
end
order_valid?(order) click to toggle source

Determines if given string is a valid order function

@param order [String] The order string to use @return [Boolean]

@example

ZendeskSupportAPI::DeletedTickets.order_valid? 'desc' #=> true
ZendeskSupportAPI::DeletedTickets.order_valid? 'random' #=> false
# File lib/zendesk_support_api/deleted_tickets.rb, line 15
def self.order_valid?(order)
  %w[desc asc].include? order
end
org_id() click to toggle source

Prints out organization_id

@return [String]

@example

ZendeskSupportAPI::DeletedTickets.org_id #=> 'organization_id'
# File lib/zendesk_support_api/deleted_tickets.rb, line 49
def self.org_id
  'organization_id'
end
restore(client, tid) click to toggle source

Restores a deleted ticket

@param client [ZendeskSupportAPI::Client] The client instance to use @param tid [Integer] The ticket ID to use @return [nil|String]

# File lib/zendesk_support_api/deleted_tickets.rb, line 111
def self.restore(client, tid)
  res = client.request(:put, "deleted_tickets/#{tid}/restore.json")
  return "Restore of #{tid} failed: #{res['error']}" if res['error']

  res
end
restore_many(client, tids) click to toggle source

Restores several deleted tickets

@param client [ZendeskSupportAPI::Client] The client instance to use @param tids [Array] Array of ticket IDs to use @return [ZendeskSupportAPI::Client.handle_job]

# File lib/zendesk_support_api/deleted_tickets.rb, line 124
def self.restore_many(client, tids)
  url = "deleted_tickets/restore_many?ids=#{tids.join(',')}"
  res = client.request(:put, url)
  client.handle_job(res)
end
select_obj(array, id) click to toggle source

Selects an object from an array based on a user ID

@param array [Array] An array of to look in @param id [Integer] The ID to use @return [Hash]

# File lib/zendesk_support_api/deleted_tickets.rb, line 59
def self.select_obj(array, id)
  array.select { |a| a['id'] == id }.first
end
sort_order(sort, order) click to toggle source

Prints out the sort_by and order_by string for the url

@param sort [String] The sort string to use @param order [String] The order string to use @return [String]

@example

ZendeskSupportAPI::DeletedTickets.sort_order('id', 'desc')
#=> '&sort_by=id&order_by=desc'
# File lib/zendesk_support_api/deleted_tickets.rb, line 29
def self.sort_order(sort, order)
  "&sort_by=#{sort}&order_by=#{order}"
end