Improved code layout.

This commit is contained in:
Martin Edenhofer 2012-08-20 15:21:15 +02:00
parent 8b858dad99
commit 48c92b8a71

View file

@ -1,4 +1,5 @@
class Link < ActiveRecord::Base class Link < ActiveRecord::Base
has_many :link_types
#before_create :check_object #before_create :check_object
#after_create :after_create, :cache_delete #after_create :after_create, :cache_delete
@ -6,101 +7,109 @@ class Link < ActiveRecord::Base
#after_destroy :cache_delete #after_destroy :cache_delete
=begin =begin
Link.add(:link_types_id=>12,
:link_object_source => 'Ticket',
:link_object_source_value => 1,
:link_object_target=> 'Ticket',
:link_object_target_value=> 1)
Link.add(:link_types_id=>12, Link.add(
:link_object_source_id => '1', :link_types_id => 12,
:link_object_source_value => 1, :link_object_source => 'Ticket',
:link_object_target_id=> '1', :link_object_source_value => 1,
:link_object_target_value=> 1) :link_object_target => 'Ticket',
:link_object_target_value => 1
Link.get_links_for_source_object(:link_object => 'Ticket', )
:link_object_value => 1)
Link.get_links_for_target_object(:link_object => 'Ticket',
:link_object_value => 1)
Link.delete_link_by_source(:source_value=>1) Link.add(
:link_types_id => 12,
:link_object_source_id => '1',
:link_object_source_value => 1,
:link_object_target_id => '1',
:link_object_target_value => 1,
)
Link.delete_link_by_target(:target_value=>1) Link.get_links_for_source_object(
:link_object => 'Ticket',
:link_object_value => 1
)
Link.delete_all_links_by_value(:object_value=>1) Link.get_links_for_target_object(
:link_object => 'Ticket',
:link_object_value => 1,
)
Link.delete_link_by_source( :source_value => 1 )
Link.delete_link_by_target( :target_value => 1 )
Link.delete_all_links_by_value( :object_value => 1 )
=end =end
has_many :link_types
def self.get_links_for_source_object(data)
linkobject_id = self.get_linktype_by_name(:name=>data[:link_object])
if linkobject_id
where(:link_object_source_id=>linkobject_id,:link_object_source_value=>data[:link_object_value])
end
end
def self.get_links_for_target_object(data)
linkobject_id = self.get_linktype_by_name(:name=>data[:link_object]) def self.get_links_for_source_object(data)
if linkobject_id linkobject_id = self.get_linktype_by_name( :name => data[:link_object] )
where(:link_object_target_id=>linkobject_id,:link_object_target_value=>data[:link_object_value]) if linkobject_id
end where( :link_object_source_id => linkobject_id, :link_object_source_value => data[:link_object_value] )
end
end
def self.get_links_for_target_object(data)
linkobject_id = self.get_linktype_by_name( :name => data[:link_object] )
if linkobject_id
where( :link_object_target_id => linkobject_id, :link_object_target_value => data[:link_object_value] )
end
end
def self.add(data)
if data.has_key?(:link_object_source)
# it exists we have to delete it
linkobject_id = self.get_linktype_by_name( :name => data[:link_object_source] )
data[:link_object_source_id] = linkobject_id
data.delete( :link_object_source )
end
if data.has_key?(:link_object_target)
# it exists we have to delete it
linkobject_id = self.get_linktype_by_name( :name => data[:link_object_target] )
data[:link_object_target_id] = linkobject_id
data.delete( :link_object_target )
end end
def self.add(data) Link.create(data)
if data.has_key?(:link_object_source) end
# it exists we have to delete it
linkobject_id = self.get_linktype_by_name(:name=>data[:link_object_source])
data[:link_object_source_id] = linkobject_id
data.delete(:link_object_source)
end
if data.has_key?(:link_object_target)
# it exists we have to delete it
linkobject_id = self.get_linktype_by_name(:name=>data[:link_object_target])
data[:link_object_target_id] = linkobject_id
data.delete(:link_object_target)
end
Link.create(data) def self.delete_link_by_source(data)
end Link.where( :link_object_source_value => data[:source_value] ).destroy_all
end
def self.delete_link_by_source(data) def self.delete_link_by_target(data)
Link.where(:link_object_source_value=>data[:source_value]).destroy_all Link.where( :link_object_target_value => data[:target_value] ).destroy_all
end end
def self.delete_link_by_target(data) def self.delete_all_links_by_value(data)
Link.where(:link_object_target_value => data[:target_value]).destroy_all Link.where( ["link_object_source_value = ? or link_object_target_value = ?", data[:object_value], data[:object_value]] ).destroy_all
end end
def self.delete_all_links_by_value(data)
Link.where(["link_object_source_value = ? or link_object_target_value = ?", data[:object_value],data[:object_value]]).destroy_all
end
private private
def self.get_linktype_by_name(data) def self.get_linktype_by_name(data)
linkid = Link::Object.where(:name=>data[:name]).first
linkid = Link::Object.where(:name=>data[:name]).first if linkid
if linkid return linkid.id
return linkid.id else
else return nil
return nil end
end return linkid
return linkid end
end
#checks for a valid link type #checks for a valid link type
def check_valid_link_type def check_valid_link_type
Rails.logger.info "Logger Test" Rails.logger.info "Logger Test"
puts "pre check link type" puts "pre check link type"
end end
def get_linkobject_by_key def get_linkobject_by_key
puts "check for exisiting link" puts "check for exisiting link"
end end
#checks for an exisiting ling #checks for an exisiting ling
def check_existing_link def check_existing_link
puts "check for exisiting link" puts "check for exisiting link"
end end