module Springcm::Helpers

Public Class Methods

deserialize_field(field) click to toggle source

Deserialize a SpringCM attribute value

# File lib/springcm-sdk/helpers.rb, line 52
def self.deserialize_field(field)
  type = field["AttributeType"]
  value = field["Value"]
  Helpers.deserialize_value(type, value)
end
deserialize_value(type, value) click to toggle source
# File lib/springcm-sdk/helpers.rb, line 37
def self.deserialize_value(type, value)
  if type == "String"
    value
  elsif type == "Number"
    value.to_i
  elsif type == "Decimal"
    value.to_f
  elsif type == "Date"
    Date.strptime(value[0..8], "%Y%m%d")
  else
    value
  end
end
serialize_field(field_config, value) click to toggle source
# File lib/springcm-sdk/helpers.rb, line 23
def self.serialize_field(field_config, value)
  type = field_config.type
  name = field_config.name
  repeating = field_config.repeating_attribute?
  serialized = {
    "AttributeType" => type,
    "RepeatingAttribute" => repeating
  }
  if !value.nil?
    serialized["Value"] = Helpers.serialize_value(type, value)
  end
  serialized
end
serialize_value(type, value) click to toggle source
# File lib/springcm-sdk/helpers.rb, line 14
def self.serialize_value(type, value)
  if type == "Date"
    # Raise if value is not a DateTime
    serialized_value = value.strftime("%m/%d/%Y")
  else
    serialized_value = value.to_s
  end
end
validate_access!(access) click to toggle source
# File lib/springcm-sdk/helpers.rb, line 58
def self.validate_access!(access)
  access_types = [
    :inherit_from_parent_folder,
    :no_access,
    :view,
    :view_create,
    :view_edit,
    :view_edit_delete,
    :view_edit_delete_set_access
  ]
  if !access_types.include?(access)
    raise ArgumentError.new("Access must be one of: #{access_types.map(&:inspect).join(", ")}")
  end
end
validate_offset_limit!(offset, limit) click to toggle source

Validate an offset and limit pair.

# File lib/springcm-sdk/helpers.rb, line 4
def self.validate_offset_limit!(offset, limit)
  if !limit.is_a?(Integer) || limit < 1 || limit > 1000
    raise ArgumentError.new("Limit must be an integer between 1 and 1000 (inclusive).")
  end

  if !offset.is_a?(Integer) || offset < 0
    raise ArgumentError.new("Offset must be a positive, non-zero integer.")
  end
end