Improved API, renamed methodes.

This commit is contained in:
Martin Edenhofer 2013-06-04 14:52:56 +02:00
parent a8d8764ac3
commit d1700945d8
9 changed files with 39 additions and 40 deletions

View file

@ -147,7 +147,7 @@ class TicketsController < ApplicationController
return if !ticket_permission( ticket ) return if !ticket_permission( ticket )
# get history of ticket # get history of ticket
history = History.history_list( 'Ticket', params[:id], 'Ticket::Article' ) history = History.list( 'Ticket', params[:id], 'Ticket::Article' )
# get related users # get related users
users = {} users = {}

View file

@ -10,7 +10,7 @@ class History < ApplicationModel
@@cache_object = {} @@cache_object = {}
@@cache_attribute = {} @@cache_attribute = {}
def self.history_create(data) def self.add(data)
# lookups # lookups
if data[:history_type] if data[:history_type]
@ -61,13 +61,15 @@ class History < ApplicationModel
end end
end end
def self.history_destroy( requested_object, requested_object_id ) def self.remove( requested_object, requested_object_id )
History.where( :history_object_id => History::Object.where( :name => requested_object ) ). history_object = History::Object.where( :name => requested_object ).first
where( :o_id => requested_object_id ). History.where(
destroy_all :history_object_id => history_object.id,
:o_id => requested_object_id,
).destroy_all
end end
def self.history_list( requested_object, requested_object_id, related_history_object = nil ) def self.list( requested_object, requested_object_id, related_history_object = nil )
if !related_history_object if !related_history_object
history_object = self.history_object_lookup( requested_object ) history_object = self.history_object_lookup( requested_object )
history = History.where( :history_object_id => history_object.id ). history = History.where( :history_object_id => history_object.id ).

View file

@ -19,7 +19,7 @@ class Observer::History < ActiveRecord::Observer
related_o_id = record.ticket_id related_o_id = record.ticket_id
related_history_object = 'Ticket' related_history_object = 'Ticket'
end end
History.history_create( History.add(
:o_id => record.id, :o_id => record.id,
:history_type => 'created', :history_type => 'created',
:history_object => record.class.name, :history_object => record.class.name,
@ -143,7 +143,7 @@ class Observer::History < ActiveRecord::Observer
related_o_id = record.ticket_id related_o_id = record.ticket_id
related_history_object_id = 'Ticket' related_history_object_id = 'Ticket'
end end
History.history_create( History.add(
:o_id => current.id, :o_id => current.id,
:history_type => 'updated', :history_type => 'updated',
:history_object => record.class.name, :history_object => record.class.name,

View file

@ -9,13 +9,12 @@ class Observer::Tag::TicketHistory < ActiveRecord::Observer
return true if record.tag_object.name != 'Ticket'; return true if record.tag_object.name != 'Ticket';
# add ticket history # add ticket history
History.history_create( History.add(
:o_id => record.o_id, :o_id => record.o_id,
:history_type => 'added', :history_type => 'added',
:history_object => 'Ticket', :history_object => 'Ticket',
:history_attribute => 'Tag', :history_attribute => 'Tag',
:value_from => record.tag_item.name, :value_from => record.tag_item.name,
:created_by_id => record.created_by_id || UserInfo.current_user_id || 1
) )
end end
def after_destroy(record) def after_destroy(record)
@ -24,13 +23,12 @@ class Observer::Tag::TicketHistory < ActiveRecord::Observer
return true if record.tag_object.name != 'Ticket'; return true if record.tag_object.name != 'Ticket';
# add ticket history # add ticket history
History.history_create( History.add(
:o_id => record.o_id, :o_id => record.o_id,
:history_type => 'removed', :history_type => 'removed',
:history_object => 'Ticket', :history_object => 'Ticket',
:history_attribute => 'Tag', :history_attribute => 'Tag',
:value_from => record.tag_item.name, :value_from => record.tag_item.name,
:created_by_id => record.created_by_id || UserInfo.current_user_id || 1
) )
end end
end end

View file

@ -55,7 +55,7 @@ class Observer::Ticket::Article::CommunicateEmail < ActiveRecord::Observer
end end
} }
if recipient_list != '' if recipient_list != ''
History.history_create( History.add(
:o_id => record.id, :o_id => record.id,
:history_type => 'email', :history_type => 'email',
:history_object => 'Ticket::Article', :history_object => 'Ticket::Article',
@ -63,8 +63,7 @@ class Observer::Ticket::Article::CommunicateEmail < ActiveRecord::Observer
:related_history_object => 'Ticket', :related_history_object => 'Ticket',
:value_from => record.subject, :value_from => record.subject,
:value_to => recipient_list, :value_to => recipient_list,
:created_by_id => record.created_by_id,
) )
end end
end end
end end

View file

@ -24,7 +24,7 @@ class Observer::Ticket::Notification < ActiveRecord::Observer
ticket = article.ticket ticket = article.ticket
elsif event[:name] == 'Ticket' elsif event[:name] == 'Ticket'
ticket = Ticket.lookup( :id => event[:id] ) ticket = Ticket.lookup( :id => event[:id] )
# next if ticket is already deleted # next if ticket is already deleted
next if !ticket next if !ticket
@ -235,7 +235,7 @@ From: #{article.from}
# add history record # add history record
if recipient_list != '' if recipient_list != ''
History.history_create( History.add(
:o_id => ticket.id, :o_id => ticket.id,
:history_type => 'notification', :history_type => 'notification',
:history_object => 'Ticket', :history_object => 'Ticket',
@ -299,4 +299,4 @@ From: #{article.from}
# puts @a.inspect # puts @a.inspect
# AuditTrail.new(record, "UPDATED") # AuditTrail.new(record, "UPDATED")
end end
end end

View file

@ -695,7 +695,7 @@ class Ticket < ApplicationModel
def destroy_dependencies def destroy_dependencies
# delete history # delete history
History.history_destroy( 'Ticket', self.id ) History.remove( 'Ticket', self.id )
# delete articles # delete articles
self.articles.destroy_all self.articles.destroy_all

View file

@ -206,7 +206,7 @@ module Import::OTRS
result = json(response) result = json(response)
self._ticket_result(result) self._ticket_result(result)
end end
def self._ticket_result(result) def self._ticket_result(result)
# puts result.inspect # puts result.inspect
map = { map = {
@ -309,7 +309,7 @@ module Import::OTRS
end end
record['Articles'].each { |article| record['Articles'].each { |article|
# get article values # get article values
article_new = { article_new = {
:created_by_id => 1, :created_by_id => 1,
@ -342,10 +342,10 @@ module Import::OTRS
rescue rescue
display_name = article_new[:from] display_name = article_new[:from]
end end
# do extra decoding because we needed to use field.value # do extra decoding because we needed to use field.value
display_name = Mail::Field.new( 'X-From', display_name ).to_s display_name = Mail::Field.new( 'X-From', display_name ).to_s
roles = Role.lookup( :name => 'Customer' ) roles = Role.lookup( :name => 'Customer' )
user = User.create( user = User.create(
:login => email, :login => email,
@ -361,7 +361,7 @@ module Import::OTRS
end end
article_new[:created_by_id] = user.id article_new[:created_by_id] = user.id
end end
if article_new[:ticket_article_sender] == 'customer' if article_new[:ticket_article_sender] == 'customer'
article_new[:ticket_article_sender_id] = Ticket::Article::Sender.lookup( :name => 'Customer' ).id article_new[:ticket_article_sender_id] = Ticket::Article::Sender.lookup( :name => 'Customer' ).id
article_new.delete( :ticket_article_sender ) article_new.delete( :ticket_article_sender )
@ -374,7 +374,7 @@ module Import::OTRS
article_new[:ticket_article_sender_id] = Ticket::Article::Sender.lookup( :name => 'System' ).id article_new[:ticket_article_sender_id] = Ticket::Article::Sender.lookup( :name => 'System' ).id
article_new.delete( :ticket_article_sender ) article_new.delete( :ticket_article_sender )
end end
if article_new[:ticket_article_type] == 'email-external' if article_new[:ticket_article_type] == 'email-external'
article_new[:ticket_article_type_id] = Ticket::Article::Type.lookup( :name => 'email' ).id article_new[:ticket_article_type_id] = Ticket::Article::Type.lookup( :name => 'email' ).id
article_new[:internal] = false article_new[:internal] = false
@ -410,14 +410,14 @@ module Import::OTRS
article.id = article_new[:id] article.id = article_new[:id]
article.save article.save
end end
} }
record['History'].each { |history| record['History'].each { |history|
# puts '-------' # puts '-------'
# puts history.inspect # puts history.inspect
if history['HistoryType'] == 'NewTicket' if history['HistoryType'] == 'NewTicket'
History.history_create( History.add(
:id => history['HistoryID'], :id => history['HistoryID'],
:o_id => history['TicketID'], :o_id => history['TicketID'],
:history_type => 'created', :history_type => 'created',
@ -444,7 +444,7 @@ module Import::OTRS
end end
end end
# puts "STATE UPDATE (#{history['HistoryID']}): -> #{from}->#{to}" # puts "STATE UPDATE (#{history['HistoryID']}): -> #{from}->#{to}"
History.history_create( History.add(
:id => history['HistoryID'], :id => history['HistoryID'],
:o_id => history['TicketID'], :o_id => history['TicketID'],
:history_type => 'updated', :history_type => 'updated',
@ -469,7 +469,7 @@ module Import::OTRS
to = $3 to = $3
to_id = $4 to_id = $4
end end
History.history_create( History.add(
:id => history['HistoryID'], :id => history['HistoryID'],
:o_id => history['TicketID'], :o_id => history['TicketID'],
:history_type => 'updated', :history_type => 'updated',
@ -494,7 +494,7 @@ module Import::OTRS
to = $3 to = $3
to_id = $4 to_id = $4
end end
History.history_create( History.add(
:id => history['HistoryID'], :id => history['HistoryID'],
:o_id => history['TicketID'], :o_id => history['TicketID'],
:history_type => 'updated', :history_type => 'updated',
@ -509,7 +509,7 @@ module Import::OTRS
) )
end end
if history['ArticleID'] && history['ArticleID'] != 0 if history['ArticleID'] && history['ArticleID'] != 0
History.history_create( History.add(
:id => history['HistoryID'], :id => history['HistoryID'],
:o_id => history['ArticleID'], :o_id => history['ArticleID'],
:history_type => 'created', :history_type => 'created',
@ -688,7 +688,7 @@ module Import::OTRS
:UserLastname => :lastname, :UserLastname => :lastname,
# :UserTitle => # :UserTitle =>
:UserLogin => :login, :UserLogin => :login,
:UserPw => :password, :UserPw => :password,
}; };
result.each { |user| result.each { |user|

View file

@ -1,6 +1,6 @@
# encoding: utf-8 # encoding: utf-8
require 'test_helper' require 'test_helper'
class HistoryTest < ActiveSupport::TestCase class HistoryTest < ActiveSupport::TestCase
test 'ticket' do test 'ticket' do
tests = [ tests = [
@ -154,15 +154,15 @@ class HistoryTest < ActiveSupport::TestCase
article.update_attributes( test[:ticket_update][:article] ) article.update_attributes( test[:ticket_update][:article] )
end end
end end
# execute ticket events # execute ticket events
Observer::Ticket::Notification.transaction Observer::Ticket::Notification.transaction
# remember ticket # remember ticket
tickets.push ticket tickets.push ticket
# get history # get history
history_list = History.history_list( 'Ticket', ticket.id, 'Ticket::Article' ) history_list = History.list( 'Ticket', ticket.id, 'Ticket::Article' )
puts history_list.inspect puts history_list.inspect
test[:history_check].each { |check_item| test[:history_check].each { |check_item|
# puts '+++++++++++' # puts '+++++++++++'
@ -207,4 +207,4 @@ class HistoryTest < ActiveSupport::TestCase
assert( !found, "Ticket destroyed") assert( !found, "Ticket destroyed")
} }
end end
end end