class Supersaas::BaseApi

Constants

DATETIME_REGEX
INTEGER_REGEX

Attributes

client[RW]

Public Class Methods

new(client) click to toggle source
# File lib/supersaas-api-client/api/base_api.rb, line 8
def initialize(client)
  @client = client
end

Protected Instance Methods

validate_datetime(value) click to toggle source
# File lib/supersaas-api-client/api/base_api.rb, line 33
def validate_datetime(value)
  begin
    if value.is_a?(String) && value =~ DATETIME_REGEX
      value
    elsif value.is_a?(Time) || value.is_a?(DateTime)
      value.strftime("%Y-%m-%d %H:%M:%S")
    else
      raise ArgumentError
    end
  rescue ArgumentError
    raise Supersaas::Exception.new("Invalid datetime parameter: #{value}. Provide a Time object or formatted 'YYYY-DD-MM HH:MM:SS' string.")
  end
end
validate_id(value) click to toggle source
# File lib/supersaas-api-client/api/base_api.rb, line 14
def validate_id(value)
  if value.is_a?(Integer)
    value
  elsif value.is_a?(String) && value =~ INTEGER_REGEX
    value.to_i
  else
    raise Supersaas::Exception.new("Invalid id parameter: #{value}. Provide a integer value.")
  end
end
validate_number(value) click to toggle source
# File lib/supersaas-api-client/api/base_api.rb, line 23
def validate_number(value); validate_id(value); end
validate_options(value, options) click to toggle source
# File lib/supersaas-api-client/api/base_api.rb, line 47
def validate_options(value, options)
  if options.include?(value)
    value
  else
    raise Supersaas::Exception.new("Invalid option parameter: #{value}. Must be one of #{options.join(', ')}.")
  end
end
validate_present(value) click to toggle source
# File lib/supersaas-api-client/api/base_api.rb, line 25
def validate_present(value)
  if value.is_a?(String) ? value.size : value
    value
  else
    raise Supersaas::Exception.new("Required parameter is missing.")
  end
end