class ZendeskSupportAPI::DeletedTickets
Tickets
class - developer.zendesk.com/rest_api/docs/support/tickets
Public Class Methods
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
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
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
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
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
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
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
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
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
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