ManageIQ/manageiq-api

View on GitHub

Showing 17 of 90 total issues

Method parse_filter has a Cognitive Complexity of 23 (exceeds 11 allowed). Consider refactoring.
Open

def parse_filter(filter)
logical_or = filter.gsub!(/^or /i, '').present?
filter_field, operator, filter_value = split_filter_string(filter)
methods = OPERATORS[operator]
 
 
Severity: Minor
Found in lib/api/filter.rb - About 2 hrs to fix

Method determine_include_for_find has a Cognitive Complexity of 22 (exceeds 11 allowed). Consider refactoring.
Open

def determine_include_for_find(klass)
attrs = virtual_attributes_for(klass) do |type, attr_name, attr_base|
if klass.virtual_includes(attr_name) && !klass.attribute_supported_by_sql?(attr_name) && attr_base.blank?
attr_name
else
Severity: Minor
Found in app/controllers/api/base_controller/renderer.rb - About 2 hrs to fix

Method normalize_hash has a Cognitive Complexity of 21 (exceeds 11 allowed). Consider refactoring.
Open

def normalize_hash(type, obj, opts = {})
Environment.fetch_encrypted_attribute_names(obj.class)
attrs = normalize_select_attributes(obj, opts)
result = {}
 
 
Severity: Minor
Found in app/controllers/api/base_controller/normalizer.rb - About 1 hr to fix

Method collection_to_jbuilder has a Cognitive Complexity of 19 (exceeds 11 allowed). Consider refactoring.
Open

def collection_to_jbuilder(type, reftype, resources, opts = {})
link_builder = Api::LinksBuilder.new(params, @req.url, opts[:counts])
Jbuilder.new do |json|
json.set! 'name', opts[:name] if opts[:name]
 
 
Severity: Minor
Found in app/controllers/api/base_controller/renderer.rb - About 1 hr to fix

Method gen_action_spec_for_collections has a Cognitive Complexity of 17 (exceeds 11 allowed). Consider refactoring.
Open

def gen_action_spec_for_collections(collection, cspec, is_subcollection, href)
if is_subcollection
target = :subcollection_actions
cspec_target = collection_config.typed_subcollection_actions(@req.collection, collection) || cspec[target]
else
Severity: Minor
Found in app/controllers/api/base_controller/renderer.rb - About 1 hr to fix

Method import_resource has a Cognitive Complexity of 15 (exceeds 11 allowed). Consider refactoring.
Open

def import_resource(_type, _id, data = {})
params = %w[dst_provider_id src_provider_id src_image_id]
raise BadRequestError, "Parameter 'data' has to contain non-empty values for the keys '#{params.join(", ")}', received: '#{data.to_json}'" if data.values_at(*params).any?(&:blank?)
raise BadRequestError, "Source and destination provider identifiers must differ" if data['dst_provider_id'] == data['src_provider_id']
 
 
Severity: Minor
Found in app/controllers/api/cloud_templates_controller.rb - About 55 mins to fix

Method gen_action_spec_for_resources has a Cognitive Complexity of 15 (exceeds 11 allowed). Consider refactoring.
Open

def gen_action_spec_for_resources(cspec, is_subcollection, href, resource)
if is_subcollection
target = :subresource_actions
cspec_target = cspec[target] || collection_config.typed_subcollection_actions(@req.collection, @req.subcollection, :subresource)
else
Severity: Minor
Found in app/controllers/api/base_controller/renderer.rb - About 55 mins to fix

Method virtual_attribute_search has a Cognitive Complexity of 15 (exceeds 11 allowed). Consider refactoring.
Open

def virtual_attribute_search(resource, attribute)
if resource.class < ApplicationRecord
rbac = Rbac::Filterer.new
# is relation in 'attribute' variable plural in the model class (from 'resource.class') ?
if [:has_many, :has_and_belongs_to_many].include?(resource.class.reflection_with_virtual(attribute).try(:macro))
Severity: Minor
Found in app/controllers/api/base_controller/renderer.rb - About 55 mins to fix

Method edit_resource has a Cognitive Complexity of 15 (exceeds 11 allowed). Consider refactoring.
Open

def edit_resource(type, id, data)
resource = resource_search(id, type)
 
allowed_params = %w[description credentials]
allowed_params += %w[name payload payload_type] if resource.configuration_script_source.nil?
Severity: Minor
Found in app/controllers/api/configuration_script_payloads_controller.rb - About 55 mins to fix

Method parse has a Cognitive Complexity of 14 (exceeds 11 allowed). Consider refactoring.
Open

def parse
filters.select(&:present?).each do |filter|
parsed_filter = parse_filter(filter)
field = parsed_filter[:field]
if field.associations.size > 1
Severity: Minor
Found in lib/api/filter.rb - About 45 mins to fix

Method validate_post_api_action has a Cognitive Complexity of 14 (exceeds 11 allowed). Consider refactoring.
Open

def validate_post_api_action(cname, mname, type, target)
aname = @req.action
 
aspec = if @req.subcollection?
collection_config.typed_subcollection_actions(@req.collection, cname, target) ||
Severity: Minor
Found in app/controllers/api/base_controller/parser.rb - About 45 mins to fix

Method set_current_group_resource has a Cognitive Complexity of 13 (exceeds 11 allowed). Consider refactoring.
Open

def set_current_group_resource(_type, id, data)
User.current_user.tap do |user|
raise "Can only edit authenticated user's current group" unless user.id == id
group_id = parse_group(data["current_group"])
raise "Must specify a current_group" unless group_id
Severity: Minor
Found in app/controllers/api/users_controller.rb - About 35 mins to fix

Method central_admin has a Cognitive Complexity of 12 (exceeds 11 allowed). Consider refactoring.
Open

def central_admin(method, action = method)
const_get("MethodRelay").class_eval do
define_method(method) do |*meth_args, &meth_block|
api_args = yield(*meth_args) if block_given?
 
 
Severity: Minor
Found in app/controllers/api/mixins/central_admin.rb - About 25 mins to fix

Method render_task_results_entity has a Cognitive Complexity of 12 (exceeds 11 allowed). Consider refactoring.
Open

def render_task_results_entity
id = params[:c_id]
task = find_resource(collection_class(:tasks), :id, id)
raise "Missing context_data in #{task_ident(task)}" if task.context_data.blank?
 
 
Severity: Minor
Found in app/controllers/api/tasks_controller.rb - About 25 mins to fix

Method patch_resource has a Cognitive Complexity of 12 (exceeds 11 allowed). Consider refactoring.
Open

def patch_resource(type, id)
patched_attrs = {}
return edit_resource(type, id, @req.json_body) if @req.json_body.kind_of?(Hash)
@req.json_body.each do |patch_cmd|
action = patch_cmd["action"]
Severity: Minor
Found in app/controllers/api/base_controller/manager.rb - About 25 mins to fix

Method collection_filterer has a Cognitive Complexity of 12 (exceeds 11 allowed). Consider refactoring.
Open

def collection_filterer(res, type, klass, is_subcollection = false)
miq_expression = filter_param(klass)
 
if miq_expression
if is_subcollection && !res.respond_to?(:where)
Severity: Minor
Found in app/controllers/api/base_controller/renderer.rb - About 25 mins to fix

Method authenticate_with_user_token has a Cognitive Complexity of 12 (exceeds 11 allowed). Consider refactoring.
Open

def authenticate_with_user_token(auth_token)
if !api_token_mgr.token_valid?(auth_token)
raise AuthenticationError, "Invalid Authentication Token #{auth_token} specified"
else
userid = api_token_mgr.token_get_info(auth_token, :userid)
Severity: Minor
Found in app/controllers/api/base_controller/authentication.rb - About 25 mins to fix
Severity
Category
Status
Source
Language