Class: Sendly::Conversation

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

Overview

============================================================================

Conversations

Direct Known Subclasses

ConversationWithMessages

Constant Summary collapse

STATUSES =
%w[active closed].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ Conversation

Returns a new instance of Conversation.



594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
# File 'lib/sendly/types.rb', line 594

def initialize(data)
  @id = data["id"]
  @phone_number = data["phoneNumber"] || data["phone_number"]
  @status = data["status"]
  @unread_count = data["unreadCount"] || data["unread_count"] || 0
  @message_count = data["messageCount"] || data["message_count"] || 0
  @last_message_text = data["lastMessageText"] || data["last_message_text"]
  @last_message_at = parse_time(data["lastMessageAt"] || data["last_message_at"])
  @last_message_direction = data["lastMessageDirection"] || data["last_message_direction"]
  @metadata = data["metadata"] || {}
  @tags = data["tags"] || []
  @contact_id = data["contactId"] || data["contact_id"]
  @created_at = parse_time(data["createdAt"] || data["created_at"])
  @updated_at = parse_time(data["updatedAt"] || data["updated_at"])
end

Instance Attribute Details

#contact_idObject (readonly)

Returns the value of attribute contact_id.



588
589
590
# File 'lib/sendly/types.rb', line 588

def contact_id
  @contact_id
end

#created_atObject (readonly)

Returns the value of attribute created_at.



588
589
590
# File 'lib/sendly/types.rb', line 588

def created_at
  @created_at
end

#idObject (readonly)

Returns the value of attribute id.



588
589
590
# File 'lib/sendly/types.rb', line 588

def id
  @id
end

#last_message_atObject (readonly)

Returns the value of attribute last_message_at.



588
589
590
# File 'lib/sendly/types.rb', line 588

def last_message_at
  @last_message_at
end

#last_message_directionObject (readonly)

Returns the value of attribute last_message_direction.



588
589
590
# File 'lib/sendly/types.rb', line 588

def last_message_direction
  @last_message_direction
end

#last_message_textObject (readonly)

Returns the value of attribute last_message_text.



588
589
590
# File 'lib/sendly/types.rb', line 588

def last_message_text
  @last_message_text
end

#message_countObject (readonly)

Returns the value of attribute message_count.



588
589
590
# File 'lib/sendly/types.rb', line 588

def message_count
  @message_count
end

#metadataObject (readonly)

Returns the value of attribute metadata.



588
589
590
# File 'lib/sendly/types.rb', line 588

def 
  @metadata
end

#phone_numberObject (readonly)

Returns the value of attribute phone_number.



588
589
590
# File 'lib/sendly/types.rb', line 588

def phone_number
  @phone_number
end

#statusObject (readonly)

Returns the value of attribute status.



588
589
590
# File 'lib/sendly/types.rb', line 588

def status
  @status
end

#tagsObject (readonly)

Returns the value of attribute tags.



588
589
590
# File 'lib/sendly/types.rb', line 588

def tags
  @tags
end

#unread_countObject (readonly)

Returns the value of attribute unread_count.



588
589
590
# File 'lib/sendly/types.rb', line 588

def unread_count
  @unread_count
end

#updated_atObject (readonly)

Returns the value of attribute updated_at.



588
589
590
# File 'lib/sendly/types.rb', line 588

def updated_at
  @updated_at
end

Instance Method Details

#active?Boolean

Returns:

  • (Boolean)


610
611
612
# File 'lib/sendly/types.rb', line 610

def active?
  status == "active"
end

#closed?Boolean

Returns:

  • (Boolean)


614
615
616
# File 'lib/sendly/types.rb', line 614

def closed?
  status == "closed"
end

#to_hObject



618
619
620
621
622
623
624
625
626
627
628
# File 'lib/sendly/types.rb', line 618

def to_h
  {
    id: id, phone_number: phone_number, status: status,
    unread_count: unread_count, message_count: message_count,
    last_message_text: last_message_text,
    last_message_at: last_message_at&.iso8601,
    last_message_direction: last_message_direction,
    metadata: , tags: tags, contact_id: contact_id,
    created_at: created_at&.iso8601, updated_at: updated_at&.iso8601
  }.compact
end