3scale/porta

View on GitHub
app/helpers/api/services_helper.rb

Summary

Maintainability
A
2 hrs
Test Coverage
module Api::ServicesHelper
 
def link_to_service service
link_to service.name, admin_service_path(service)
end
 
def list_items_or_empty collection, empty_message, &block
Api::ServicesHelper#list_items_or_empty refers to 'collection' more than self (maybe move it to another class?)
if collection.empty?
content_tag(:li, empty_message, :class => 'item empty')
else
collection.each do |item|
yield(item)
end
nil
end
end
 
Method `friendly_service_setting` has a Cognitive Complexity of 18 (exceeds 5 allowed). Consider refactoring.
Api::ServicesHelper#friendly_service_setting has approx 16 statements
def friendly_service_setting service, setting
value = service.send setting
message, value = case setting
when :custom_keys_enabled
['Custom application keys are VALUE', value ? 'enabled' : 'disabled']
when :buyers_manage_keys
['Users VALUE manage application keys', value ? 'can' : "cannot"]
when :buyer_can_select_plan
['Users VALUE when creating an application', value ? 'can select a plan' : "cannot select a plan"]
when :buyer_plan_change_permission
value = case value.to_sym
when :request
"request plan change"
when :direct
"directly change plans"
when :none
"not change plans"
end
['Users can VALUE', value]
when :buyers_manage_apps
['Users VALUE manage applications', value ? 'can' : "can't"]
else
["Setting #{setting} - VALUE", value]
end
 
return unless message && value
 
message.gsub('VALUE', content_tag(:strong, value)).html_safe
end
 
def delete_service_link(service, options = {})
msg = t('api.services.forms.definition_settings.delete_confirmation', name: j(service.name))
delete_link_for(admin_service_path(service), {data: { confirm: msg }, class: 'pf-c-button pf-m-danger', method: :delete}.merge(options) )
end
 
def refresh_service_link(service, options = {})
url = service_discovery_usable? ? provider_admin_service_discovery_service_path(service) : service_discovery_presenter.authorize_url
 
msg = t('api.services.forms.definition_settings.refresh_confirmation', name: h(service.name))
action_link_to(:refresh, url, {data: { confirm: msg }, method: :put}.merge(options) )
end
end