class Zendesk2::Ticket

Public Instance Methods

audits() click to toggle source

@return [Zendesk2::TicketAudits] all audits for this ticket

# File lib/zendesk2/ticket.rb, line 123
def audits
  cistern.ticket_audits(ticket_id: identity).all
end
collaborators() click to toggle source

@return [Array<Zendesk2::User>] All users CCD on this ticket

# File lib/zendesk2/ticket.rb, line 138
def collaborators
  (collaborator_ids || []).map { |id| cistern.users.get(id) }
end
collaborators=(collaborators) click to toggle source
# File lib/zendesk2/ticket.rb, line 142
def collaborators=(collaborators)
  collaborators = [collaborators] unless collaborators.is_a?(Array)

  value = collaborators.map do |collaborator|
    case collaborator
    when Zendesk2::User
      collaborator.identity
    else
      collaborator
    end
  end

  attributes[:collaborators] = value
end
comment(text, options = {}) click to toggle source

Adds a ticket comment

@param [String] text comment body @param [Hash] options comment options @option options [Array] :attachments Attachment to upload with comment @option options [Boolean] :public (true) @return [Zendesk2::TicketComment]

# File lib/zendesk2/ticket.rb, line 105
def comment(text, options = {})
  requires :identity

  options[:public] = true if options[:public].nil?

  comment = Zendesk2.stringify_keys(options).merge('body' => text)

  cistern.ticket_comments.new(
    cistern.update_ticket(
      'ticket' => {
        'id'      => identity,
        'comment' => comment,
      }
    ).body['audit']['events'].first
  )
end
comments() click to toggle source

@return [Array<Zendesk2::TicketComment>] all comments for this ticket

# File lib/zendesk2/ticket.rb, line 133
def comments
  cistern.ticket_comments(ticket_id: identity).all
end
destroy!() click to toggle source
# File lib/zendesk2/ticket.rb, line 92
def destroy!
  requires :identity

  cistern.destroy_ticket('ticket' => { 'id' => identity })
end
metrics() click to toggle source

@return [Zendesk2::TicketMetric] metrics for this ticket

# File lib/zendesk2/ticket.rb, line 128
def metrics
  Zendesk2::TicketMetric.new(cistern.get_ticket_metric('ticket_id' => identity).body['ticket_metric'])
end
save!() click to toggle source
# File lib/zendesk2/ticket.rb, line 72
def save!
  data = if new_record?
           requires :subject, :description

           create_attributes = attributes.dup

           with_requester = (@requester || nil) && Zendesk2.stringify_keys(@requester)

           with_requester && create_attributes['requester'] = with_requester

           cistern.create_ticket('ticket' => create_attributes).body['ticket']
         else
           requires :identity

           cistern.update_ticket('ticket' => attributes).body['ticket']
         end

  merge_attributes(data)
end