diff --git a/app/controllers/carto/superadmin/metrics_controller_helper.rb b/app/controllers/carto/superadmin/metrics_controller_helper.rb index d17e842548..80c2723fcc 100644 --- a/app/controllers/carto/superadmin/metrics_controller_helper.rb +++ b/app/controllers/carto/superadmin/metrics_controller_helper.rb @@ -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 diff --git a/app/controllers/carto/superadmin/organizations_controller.rb b/app/controllers/carto/superadmin/organizations_controller.rb index dd8c5350ee..6fe67996cc 100644 --- a/app/controllers/carto/superadmin/organizations_controller.rb +++ b/app/controllers/carto/superadmin/organizations_controller.rb @@ -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 diff --git a/app/controllers/carto/superadmin/users_controller.rb b/app/controllers/carto/superadmin/users_controller.rb index 01612da7a8..4ee134c99c 100644 --- a/app/controllers/carto/superadmin/users_controller.rb +++ b/app/controllers/carto/superadmin/users_controller.rb @@ -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