Class: ZendeskSupportAPI::DeletedTickets

Inherits:
Object
  • Object
show all
Defined in:
lib/zendesk_support_api/deleted_tickets.rb

Overview

Class Method Summary collapse

Class Method Details

.deleted_sort_valid?(sort) ⇒ Boolean

Determines if sort value is valid for delete requests

Parameters:

  • sort (String)

    The string to check

Returns:

  • (Boolean)


68
69
70
# 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) ⇒ Array

Lists all deleted tickets

Parameters:

Returns:

  • (Array)


92
93
94
95
96
97
98
99
100
101
102
103
# 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') ⇒ Array

Lists deleted tickets (first 100)

Parameters:

  • client (ZendeskSupportAPI::Client)

    The client instance to use

  • sort (String) (defaults to: 'id')

    The sort string to use

  • order (String) (defaults to: 'asc')

    The order string to use

Returns:

  • (Array)


79
80
81
82
83
84
85
# 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) ⇒ nil|String

Returns the string of the next_page for pagination

Parameters:

  • res (Hash)

    The Hash containing the response from a request

Returns:

  • (nil|String)


38
39
40
# 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) ⇒ Boolean

Determines if given string is a valid order function

Examples:

ZendeskSupportAPI::DeletedTickets.order_valid? 'desc' #=> true
ZendeskSupportAPI::DeletedTickets.order_valid? 'random' #=> false

Parameters:

  • order (String)

    The order string to use

Returns:

  • (Boolean)


15
16
17
# File 'lib/zendesk_support_api/deleted_tickets.rb', line 15

def self.order_valid?(order)
  %w[desc asc].include? order
end

.org_idString

Prints out organization_id

Examples:

ZendeskSupportAPI::DeletedTickets.org_id #=> 'organization_id'

Returns:

  • (String)


49
50
51
# File 'lib/zendesk_support_api/deleted_tickets.rb', line 49

def self.org_id
  'organization_id'
end

.restore(client, tid) ⇒ nil|String

Restores a deleted ticket

Parameters:

Returns:

  • (nil|String)


111
112
113
114
115
116
# 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) ⇒ ZendeskSupportAPI::Client.handle_job

Restores several deleted tickets

Parameters:

Returns:



124
125
126
127
128
# 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) ⇒ Hash

Selects an object from an array based on a user ID

Parameters:

  • array (Array)

    An array of to look in

  • id (Integer)

    The ID to use

Returns:

  • (Hash)


59
60
61
# 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) ⇒ String

Prints out the sort_by and order_by string for the url

Examples:

ZendeskSupportAPI::DeletedTickets.sort_order('id', 'desc')
#=> '&sort_by=id&order_by=desc'

Parameters:

  • sort (String)

    The sort string to use

  • order (String)

    The order string to use

Returns:

  • (String)


29
30
31
# File 'lib/zendesk_support_api/deleted_tickets.rb', line 29

def self.sort_order(sort, order)
  "&sort_by=#{sort}&order_by=#{order}"
end