From 38d7cde395f9779fe236d7b8828e39fe2e3d104d Mon Sep 17 00:00:00 2001 From: Janos Laszlo Vasik Date: Tue, 19 Sep 2023 14:30:52 +0200 Subject: [PATCH] feat(APIv2): RHINENG-2133 implement rules endpoint nested under profiles --- app/models/v2/rule.rb | 2 ++ app/serializers/v2/rule_serializer.rb | 5 +++++ config/routes.rb | 4 +++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/models/v2/rule.rb b/app/models/v2/rule.rb index 28bedf0a06..b72a908976 100644 --- a/app/models/v2/rule.rb +++ b/app/models/v2/rule.rb @@ -19,6 +19,8 @@ class Rule < ApplicationRecord ) belongs_to :security_guide + has_many :profile_rules, dependent: :delete_all + has_many :profiles, through: :profile_rules, source: :profile, class_name: 'V2::Profile' sortable_by :title sortable_by :severity, SORTED_SEVERITIES diff --git a/app/serializers/v2/rule_serializer.rb b/app/serializers/v2/rule_serializer.rb index fdc6f52870..7ee8409143 100644 --- a/app/serializers/v2/rule_serializer.rb +++ b/app/serializers/v2/rule_serializer.rb @@ -4,5 +4,10 @@ module V2 # JSON API serialization for an OpenSCAP Rule class RuleSerializer < ApplicationSerializer attributes :ref_id, :title, :rationale, :description, :severity, :precedence + attribute :remediation_issue_id + + def include_remediation_issue_id? + true if object.params[:parents].include?(Profile) + end end end diff --git a/config/routes.rb b/config/routes.rb index bf78b2c1d7..cdf6fa671d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -25,9 +25,11 @@ def draw_routes(prefix) unless Rails.env.production? scope 'v2', module: 'v2', as: 'v2' do resources :security_guides, only: [:index, :show] do - resources :profiles, only: [:index, :show], parents: [:security_guide] resources :value_definitions, only: [:index, :show], parents: [:security_guide] resources :rules, only: [:index, :show], parents: [:security_guide] + resources :profiles, only: [:index, :show], parents: [:security_guide] do + resources :rules, only: [:index, :show], parents: [:security_guide, :profiles] + end end end end