Extract parameter parsing to controller helper

pull/9768/head
Javier Torres 8 years ago
parent 742af7eeef
commit a9d4de5919

@ -20,7 +20,14 @@ module Carto::Superadmin
private
def get_usage(user, org, date_from, date_to, only_services, totals)
def get_usage(user, org)
only_services = params[:services] || []
raise ArgumentError.new('services must be an array') unless only_services.is_a?(Array)
only_services = only_services.map(&:to_sym)
date_to = params[:to] ? Date.parse(params[:to]) : Date.today
date_from = params[:from] ? Date.parse(params[:from]) : last_billing_cycle
totals = params[:totals].present? && params[:totals] == 'true'
usage = {}
USAGE_METRICS_RETRIEVERS.each do |retriever|
services = retriever.services

@ -12,25 +12,22 @@ module Carto
ssl_required :usage
before_filter :load_organization
rescue_from ArgumentError, with: :render_date_format_error
rescue_from ArgumentError, with: :render_format_error
def usage
services = params[:services] || []
return render(json: { error: 'services must be an array' }, status: 422) unless services.is_a?(Array)
services = services.map(&:to_sym)
date_to = params[:to] ? Date.parse(params[:to]) : Date.today
date_from = params[:from] ? Date.parse(params[:from]) : @organization.owner.last_billing_cycle
totals = params[:totals].present? && params[:totals] == 'true'
usage = get_usage(nil, @organization, date_from, date_to, services, totals)
usage = get_usage(nil, @organization)
respond_with(usage)
end
private
def render_date_format_error
render(json: { error: 'Invalid date format' }, status: 422)
def last_billing_cycle
@organization.owner.last_billing_cycle
end
def render_format_error(exception)
render(json: { error: exception.message }, status: 422)
end
def load_organization

@ -12,24 +12,22 @@ module Carto
ssl_required :usage
before_filter :load_user
rescue_from ArgumentError, with: :render_date_format_error
rescue_from ArgumentError, with: :render_format_error
def usage
services = params[:services] || []
return render(json: { error: 'services must be an array' }, status: 422) unless services.is_a?(Array)
services = services.map(&:to_sym)
date_to = params[:to] ? Date.parse(params[:to]) : Date.today
date_from = params[:from] ? Date.parse(params[:from]) : @user.last_billing_cycle
totals = params[:totals].present? && params[:totals] == 'true'
usage = get_usage(@user, nil, date_from, date_to, services, totals)
usage = get_usage(@user, nil)
respond_with(usage)
end
private
def render_date_format_error
render(json: { error: 'Invalid date format' }, status: 422)
def last_billing_cycle
@user.last_billing_cycle
end
def render_format_error(exception)
render(json: { error: exception.message }, status: 422)
end
def load_user

Loading…
Cancel
Save