#
# Copyright 2014 Red Hat, Inc.
#
# This software is licensed to you under the GNU General Public
# License as published by the Free Software Foundation; either version
# 2 of the License (GPLv2) or (at your option) any later version.
# There is NO WARRANTY for this software, express or implied,
# including the implied warranties of MERCHANTABILITY,
# NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
# have received a copy of GPLv2 along with this software; if not, see
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.

# The Errata module contains methods that are common for supporting errata
# in several controllers (e.g. SystemErrataController and SystemGroupErrataController)
module Katello
module Util
  module Errata
    def filter_by_type(errata_list, filter_type)
      filtered_list = []

      if filter_type != "All"
        pulp_filter_type = get_pulp_filter_type(filter_type)

        errata_list.each do |erratum|
          if erratum.respond_to?(:type)
            if erratum.type == pulp_filter_type
              filtered_list << erratum
            end
          else
            if erratum["type"] == pulp_filter_type
              filtered_list << erratum
            end
          end
        end
      else
        filtered_list = errata_list
      end

      return filtered_list
    end

    def get_pulp_filter_type(type)
      filter_type = type.downcase
      if filter_type == "bugfix"
        return Glue::Pulp::Errata::BUGZILLA
      elsif filter_type == "enhancement"
        return Glue::Pulp::Errata::ENHANCEMENT
      elsif filter_type == "security"
        return Glue::Pulp::Errata::SECURITY
      end
    end

    def filter_by_state(errata_list, errata_state)
      if errata_state == "applied"
        return []
      else
        return errata_list
      end
    end

  end
end
end
