Class: Sendly::Template

Inherits:
Object
  • Object
show all
Defined in:
lib/sendly/templates_resource.rb

Constant Summary collapse

STATUSES =
%w[draft published].freeze
TYPES =
Deprecated.

Preset and custom are distinguished by #is_preset / #preset? now. For the values #status can hold, see STATUSES.

%w[preset custom].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ Template

Returns a new instance of Template.



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/sendly/templates_resource.rb', line 22

def initialize(data)
  @id = data["id"]
  @name = data["name"]
  @text = data["text"]
  @variables = data["variables"] || []
  @is_preset = data["is_preset"] || data["isPreset"] || false
  @preset_slug = data["preset_slug"] || data["presetSlug"]
  @status = data["status"]
  @version = data["version"]
  @published_at = parse_time(data["published_at"] || data["publishedAt"])
  @created_at = parse_time(data["created_at"] || data["createdAt"])
  @updated_at = parse_time(data["updated_at"] || data["updatedAt"])
  @locale = data["locale"]
  @is_default = data["isDefault"] || data["is_default"] || false
end

Instance Attribute Details

#created_atObject (readonly)

Returns the value of attribute created_at.



5
6
7
# File 'lib/sendly/templates_resource.rb', line 5

def created_at
  @created_at
end

#idObject (readonly)

Returns the value of attribute id.



5
6
7
# File 'lib/sendly/templates_resource.rb', line 5

def id
  @id
end

#is_defaultObject (readonly)

Deprecated.

The API has no concept of a default template. It returns no such field, so this is always false. There is no replacement.



14
15
16
# File 'lib/sendly/templates_resource.rb', line 14

def is_default
  @is_default
end

#is_presetObject (readonly)

Returns the value of attribute is_preset.



5
6
7
# File 'lib/sendly/templates_resource.rb', line 5

def is_preset
  @is_preset
end

#localeObject (readonly)

Deprecated.

Templates are not scoped by locale. The API returns no locale field, so this is always nil. There is no replacement.



10
11
12
# File 'lib/sendly/templates_resource.rb', line 10

def locale
  @locale
end

#nameObject (readonly)

Returns the value of attribute name.



5
6
7
# File 'lib/sendly/templates_resource.rb', line 5

def name
  @name
end

#preset_slugObject (readonly)

Returns the value of attribute preset_slug.



5
6
7
# File 'lib/sendly/templates_resource.rb', line 5

def preset_slug
  @preset_slug
end

#published_atObject (readonly)

Returns the value of attribute published_at.



5
6
7
# File 'lib/sendly/templates_resource.rb', line 5

def published_at
  @published_at
end

#statusObject (readonly)

Returns the value of attribute status.



5
6
7
# File 'lib/sendly/templates_resource.rb', line 5

def status
  @status
end

#textObject (readonly) Also known as: body

Returns the value of attribute text.



5
6
7
# File 'lib/sendly/templates_resource.rb', line 5

def text
  @text
end

#updated_atObject (readonly)

Returns the value of attribute updated_at.



5
6
7
# File 'lib/sendly/templates_resource.rb', line 5

def updated_at
  @updated_at
end

#variablesObject (readonly)

Returns the value of attribute variables.



5
6
7
# File 'lib/sendly/templates_resource.rb', line 5

def variables
  @variables
end

#versionObject (readonly)

Returns the value of attribute version.



5
6
7
# File 'lib/sendly/templates_resource.rb', line 5

def version
  @version
end

Instance Method Details

#custom?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/sendly/templates_resource.rb', line 57

def custom?
  !is_preset
end

#is_publishedBoolean

Deprecated.

Use #status or #published?. Derived from #status.

Returns:

  • (Boolean)


49
50
51
# File 'lib/sendly/templates_resource.rb', line 49

def is_published
  status == "published"
end

#preset?Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/sendly/templates_resource.rb', line 53

def preset?
  is_preset
end

#published?Boolean

Returns:

  • (Boolean)


61
62
63
# File 'lib/sendly/templates_resource.rb', line 61

def published?
  status == "published"
end

#to_hObject



65
66
67
68
69
70
71
72
73
74
# File 'lib/sendly/templates_resource.rb', line 65

def to_h
  {
    id: id, name: name, text: text, variables: variables,
    is_preset: is_preset, preset_slug: preset_slug, status: status,
    version: version, published_at: published_at&.iso8601,
    created_at: created_at&.iso8601, updated_at: updated_at&.iso8601,
    body: body, type: type, locale: locale, is_default: is_default,
    is_published: is_published
  }.compact
end

#typeString

Deprecated.

Use #is_preset or #preset?. Derived from #is_preset: "preset" for a preset template, "custom" for your own.

Returns:

  • (String)


43
44
45
# File 'lib/sendly/templates_resource.rb', line 43

def type
  is_preset ? "preset" : "custom"
end