Module: Springcm::Helpers

Defined in:
lib/springcm-sdk/helpers.rb

Class Method Summary collapse

Class Method Details

.deserialize_field(field) ⇒ Object

Deserialize a SpringCM attribute value



52
53
54
55
56
# 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) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
# 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) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
# 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) ⇒ Object



14
15
16
17
18
19
20
21
# 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) ⇒ Object



58
59
60
61
62
63
64
65
66
67
68
69
70
71
# 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) ⇒ Object

Validate an offset and limit pair.



4
5
6
7
8
9
10
11
12
# 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