module StripeMock::RequestHandlers::ParamValidators

Constants

SUPPORTED_CURRENCIES
SUPPORTED_PLAN_INTERVALS

Public Instance Methods

already_exists_message(obj_class) click to toggle source
# File lib/stripe_mock/request_handlers/validators/param_validators.rb, line 5
def already_exists_message(obj_class)
  "#{obj_class.to_s.split("::").last} already exists."
end
invalid_currency_message(my_val) click to toggle source
# File lib/stripe_mock/request_handlers/validators/param_validators.rb, line 68
def invalid_currency_message(my_val)
  "Invalid currency: #{my_val.downcase}. Stripe currently supports these currencies: #{SUPPORTED_CURRENCIES.join(", ")}"
end
invalid_integer_message(my_val) click to toggle source
# File lib/stripe_mock/request_handlers/validators/param_validators.rb, line 17
def invalid_integer_message(my_val)
  "Invalid integer: #{my_val}"
end
invalid_plan_interval_message() click to toggle source
# File lib/stripe_mock/request_handlers/validators/param_validators.rb, line 51
def invalid_plan_interval_message
  "Invalid interval: must be one of day, month, week, or year"
end
missing_param_message(attr_name) click to toggle source
# File lib/stripe_mock/request_handlers/validators/param_validators.rb, line 13
def missing_param_message(attr_name)
  "Missing required param: #{attr_name}."
end
missing_plan_amount_message() click to toggle source

PlanValidator

# File lib/stripe_mock/request_handlers/validators/param_validators.rb, line 45
def missing_plan_amount_message
  "Plans require an `amount` parameter to be set."
end
not_found_message(obj_class, obj_id) click to toggle source
# File lib/stripe_mock/request_handlers/validators/param_validators.rb, line 9
def not_found_message(obj_class, obj_id)
  "No such #{obj_class.to_s.split("::").last.downcase}: #{obj_id}"
end
require_param(param_name) click to toggle source
# File lib/stripe_mock/request_handlers/validators/param_validators.rb, line 113
def require_param(param_name)
  raise Stripe::InvalidRequestError.new("Missing required param: #{param_name}.", param_name.to_s, http_status: 400)
end
validate_create_plan_params(params) click to toggle source
# File lib/stripe_mock/request_handlers/validators/param_validators.rb, line 72
def validate_create_plan_params(params)
  plan_id = params[:id].to_s
  product_id = params[:product]

  @base_strategy.create_plan_params.keys.each do |attr_name|
    message =
      if attr_name == :amount
        "Plans require an `#{attr_name}` parameter to be set."
      else
        "Missing required param: #{attr_name}."
      end
    raise Stripe::InvalidRequestError.new(message, attr_name) if params[attr_name].nil?
  end

  if plans[plan_id]
    message = already_exists_message(Stripe::Plan)
    raise Stripe::InvalidRequestError.new(message, :id)
  end

  unless products[product_id]
    message = not_found_message(Stripe::Product, product_id)
    raise Stripe::InvalidRequestError.new(message, :product)
  end

  unless SUPPORTED_PLAN_INTERVALS.include?(params[:interval])
    message = invalid_plan_interval_message
    raise Stripe::InvalidRequestError.new(message, :interval)
  end

  unless SUPPORTED_CURRENCIES.include?(params[:currency])
    message = invalid_currency_message(params[:currency])
    raise Stripe::InvalidRequestError.new(message, :currency)
  end

  unless params[:amount].integer?
    message = invalid_integer_message(params[:amount])
    raise Stripe::InvalidRequestError.new(message, :amount)
  end

end
validate_create_product_params(params) click to toggle source

ProductValidator

# File lib/stripe_mock/request_handlers/validators/param_validators.rb, line 26
def validate_create_product_params(params)
  params[:id] = params[:id].to_s
  @base_strategy.create_product_params.keys.reject{ |k,_| k == :id }.each do |k|
    raise Stripe::InvalidRequestError.new(missing_param_message(k), k) if params[k].nil?
  end

  if !%w[good service].include?(params[:type])
    raise Stripe::InvalidRequestError.new("Invalid type: must be one of good or service", :type)
  end

  if products[ params[:id] ]
    raise Stripe::InvalidRequestError.new(already_exists_message(Stripe::Product), :id)
  end
end