Sha256: b6a7c72bc58ca193f26a35af4677f500419c8f1c066d8313072c454c90829084

Contents?: true

Size: 1.07 KB

Versions: 4

Compression:

Stored size: 1.07 KB

Contents

class Zendesk2::Client::Tickets < Zendesk2::Client::Collection
  include Zendesk2::PagedCollection
  include Zendesk2::Searchable
  extend Zendesk2::Attributes

  model Zendesk2::Client::Ticket

  attribute :requester_id, type: :integer
  attribute :collaborator_id, type: :integer

  assoc_accessor :requester
  assoc_accessor :collaborator

  self.collection_root   = "tickets"
  self.model_method      = :get_ticket
  self.model_root        = "ticket"
  self.search_type       = "ticket"

  def collection_page(params={})
    collection_method = if requester_id
                          :get_requested_tickets
                        elsif collaborator_id
                          :get_ccd_tickets
                        else
                          :get_tickets
                        end

    body = service.send(collection_method, Cistern::Hash.stringify_keys(self.attributes.merge(params))).body

    self.load(body[collection_root]) # 'results' is the key for paged searches
    self.merge_attributes(Cistern::Hash.slice(body, "count", "next_page", "previous_page"))
    self
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
zendesk2-1.5.12 lib/zendesk2/client/collections/tickets.rb
zendesk2-1.5.11 lib/zendesk2/client/collections/tickets.rb
zendesk2-1.5.10 lib/zendesk2/client/collections/tickets.rb
zendesk2-1.5.9 lib/zendesk2/client/collections/tickets.rb