module Genability::Client::Helpers

@private

Protected Instance Methods

convert_to_boolean(value = nil) click to toggle source
# File lib/genability/client/helpers.rb, line 64
def convert_to_boolean(value = nil)
  return nil if value.nil? || value.empty?
  value == "false" ? nil : "true"
end
format_to_iso8601(date_time = nil) click to toggle source
# File lib/genability/client/helpers.rb, line 78
def format_to_iso8601(date_time = nil)
  if date_time.respond_to?(:iso8601)
    genability_iso8601_converter(date_time)
  else
    parse_and_format_to_iso8601(date_time)
  end
end
genability_iso8601_converter(date_time = nil) click to toggle source
# File lib/genability/client/helpers.rb, line 94
def genability_iso8601_converter(date_time = nil)
  date_time.iso8601(1).gsub(/(?<=\-\d{2}):(?=\d{2})/, '')
rescue
  nil
end
multi_option_handler(value = nil) click to toggle source
# File lib/genability/client/helpers.rb, line 69
def multi_option_handler(value = nil)
  return nil if value.nil?
  if value.is_a?(Array)
    value.collect{|x| x.upcase}.join(',')
  else
    value.upcase
  end
end
pagination_params(options = {}) click to toggle source

@option options [Integer] :page The page number to begin the result

set from. If not specified, this will begin with the first result
set. (Optional)

@option options [Integer] :per_page The number of results to return.

If not specified, this will return 25 results. (Optional)
# File lib/genability/client/helpers.rb, line 17
def pagination_params(options = {})
  {
    'pageStart' => options['pageStart'] || options[:page_start] || options[:page],
    'pageCount' => options['pageCount'] || options[:page_count] || options[:per_page]
  }.delete_if{ |k,v| v.nil? }
end
parse_and_format_to_iso8601(date_time = nil) click to toggle source
# File lib/genability/client/helpers.rb, line 86
def parse_and_format_to_iso8601(date_time = nil)
  parsed_date = Chronic.parse(date_time.to_s)
  parsed_date = parsed_date.nil? ? Time.parse(date_time.to_s) : parsed_date
  genability_iso8601_converter(parsed_date)
rescue
  nil
end
search_params(options = {}) click to toggle source

@option options [String] :search The string of text to search on. This

can also be a regular expression, in which case you should set the
'isRegex' flag to true. (Optional)

@option options [String] :search_on Comma separated list of fields to

query on. When searchOn is specified, the text provided in the search
string field will be searched within these fields. The list of fields
to search on depend on the entity being searched for. Read the documentation
for the entity for more details on the fields that can be searched, and
the default fields to be searched if searchOn is not specified. (Optional)

@option options [Boolean] :starts_with When true, the search will only

return results that begin with the specified search string. Otherwise,
any match of the search string will be returned as a result. Default is
false. (Optional)

@option options [Boolean] :ends_with When true, the search will only return

results that end with the specified search string. Otherwise, any match of
the search string will be returned as a result. Default is false. (Optional)

@option options [Boolean] :is_regex When true, the provided search string

will be regarded as a regular expression and the search will return results
matching the regular expression. Default is false. (Optional)

@option options [String] :sort_on Comma separated list of fields to sort on.

This can also be input via Array Inputs (see above). (Optional)

@option options [String] :sort_order Comma separated list of ordering.

Possible values are 'ASC' and 'DESC'. Default is 'ASC'. If your sortOn
contains multiple fields and you would like to order fields individually,
you can pass in a comma separated list here (or use Array Inputs, see above).
For example, if your sortOn contained 5 fields, and your sortOrder contained
'ASC, DESC, DESC', these would be applied to the first three items in the sortOn
field. The remaining two would default to ASC. (Optional)
# File lib/genability/client/helpers.rb, line 52
def search_params(options = {})
  {
    'search'      => options[:search],
    'searchOn'    => multi_option_handler(options[:search_on]),
    'startsWith'  => convert_to_boolean(options[:starts_with]),
    'endsWith'    => convert_to_boolean(options[:ends_with]),
    'isRegex'     => convert_to_boolean(options[:is_regex]),
    'sortOn'      => options[:sort_on],
    'sortOrder'   => options[:sort_order]
  }.delete_if{ |k,v| v.nil? }
end