class Puppet::Rails::ResourceTag < ActiveRecord::Base
  belongs_to :puppet_tag
  belongs_to :resource

  def to_label
    "#{self.puppet_tag.name}"
  end

  # returns an array of hash containing tags of resource
  def self.find_all_tags_from_resource(db_resource)
    tags = db_resource.connection.select_all("SELECT t.id, t.resource_id, p.name FROM resource_tags t INNER JOIN puppet_tags p ON t.puppet_tag_id=p.id WHERE t.resource_id=#{db_resource.id}")
    tags.each do |val|
      val['resource_id'] = Integer(val['resource_id'])
    end
    tags
  end

  # returns an array of hash containing tags of a host
  def self.find_all_tags_from_host(db_host)
    tags = db_host.connection.select_all("SELECT t.id, t.resource_id, p.name FROM resource_tags t INNER JOIN resources r ON t.resource_id=r.id INNER JOIN puppet_tags p ON t.puppet_tag_id=p.id WHERE r.host_id=#{db_host.id}")
    tags.each do |val|
      val['resource_id'] = Integer(val['resource_id'])
    end
    tags
  end
end
