class OTRS::Ticket::Article

Public Class Methods

find(id) click to toggle source
# File lib/otrs_connector/otrs/ticket/article.rb, line 30
def self.find(id)
  data = { 'ArticleID' => id, 'UserID' => 1 }
  params = { :object => 'TicketObject', :method => 'ArticleGet', :data => data }
  a = connect(params)
  a = Hash[*a].symbolize_keys
  self.new(a)
end
new(attributes = {}) click to toggle source
# File lib/otrs_connector/otrs/ticket/article.rb, line 7
def initialize(attributes = {})
  attributes.each do |name, value|
    OTRS::Ticket::Article.set_accessors(name.to_s.underscore)
    send("#{name.to_s.underscore.to_sym}=", value)
  end
end
set_accessors(key) click to toggle source
# File lib/otrs_connector/otrs/ticket/article.rb, line 3
def self.set_accessors(key)
  attr_accessor key.to_sym
end
where(ticket_id) click to toggle source
# File lib/otrs_connector/otrs/ticket/article.rb, line 38
def self.where(ticket_id)
  data = { 'TicketID' => ticket_id }
  params = { :object => 'TicketObject', :method => 'ArticleIndex', :data => data }
  a = connect(params)
  b = []
  a.each do |c|
    b << find(c)
  end
  OTRS::Relation.new(b)
end

Public Instance Methods

create(attributes) click to toggle source
# File lib/otrs_connector/otrs/ticket/article.rb, line 17
def create(attributes)
  data = { 'TicketID' => attributes[:ticket_id], 'From' => attributes[:email], 'Subject' => attributes[:title], 'Body' => attributes[:body] }
  data['ArticleType'] ||= 'email-external'
  data['UserID'] ||= 1
  data['SenderType'] ||= 'agent'
  data['HistoryType'] ||= 'NewTicket'
  data['HistoryComment'] ||= ' '
  data['ContentType'] ||= 'text/plain'
  params = { :object => 'TicketObject', :method => 'ArticleCreate', :data => data }
  a = connect(params)
  if a.first.nil? then nil else a end
end
save() click to toggle source
# File lib/otrs_connector/otrs/ticket/article.rb, line 13
def save
  self.create(self.attributes)
end