Class: Telerivet::Group

Inherits:
Entity
  • Object
show all
Defined in:
lib/telerivet/group.rb

Overview

Represents a group used to organize contacts within Telerivet.

Fields:

- id (string, max 34 characters)
    * ID of the group
    * Read-only

- name
    * Name of the group
    * Updatable via API

- dynamic (bool)
    * Whether this is a dynamic or normal group
    * Read-only

- num_members (int)
    * Number of contacts in the group (null if the group is dynamic)
    * Read-only

- time_created (UNIX timestamp)
    * Time the group was created in Telerivet
    * Read-only

- allow_sending (bool)
    * True if messages can be sent to this group, false otherwise.
    * Updatable via API

- add_time_variable (string)
    * Variable name of a custom contact field that will automatically be set to the
        current date/time on any contact that is added to the group. This variable will only
        be set if the contact does not already have a value for this variable.
    * Updatable via API

- vars (Hash)
    * Custom variables stored for this group. Variable names may be up to 32 characters in
        length and can contain the characters a-z, A-Z, 0-9, and _.
        Values may be strings, numbers, or boolean (true/false).
        String values may be up to 4096 bytes in length when encoded as UTF-8.
        Up to 100 variables are supported per object.
        Setting a variable to null will delete the variable.
    * Updatable via API

- project_id
    * ID of the project this group belongs to
    * Read-only

Instance Method Summary collapse

Methods inherited from Entity

#get, #initialize, #load, #set, #set_data, #to_s, #vars

Constructor Details

This class inherits a constructor from Telerivet::Entity

Instance Method Details

#add_time_variableObject



227
228
229
# File 'lib/telerivet/group.rb', line 227

def add_time_variable
    get('add_time_variable')
end

#add_time_variable=(value) ⇒ Object



231
232
233
# File 'lib/telerivet/group.rb', line 231

def add_time_variable=(value)
    set('add_time_variable', value)
end

#allow_sendingObject



219
220
221
# File 'lib/telerivet/group.rb', line 219

def allow_sending
    get('allow_sending')
end

#allow_sending=(value) ⇒ Object



223
224
225
# File 'lib/telerivet/group.rb', line 223

def allow_sending=(value)
    set('allow_sending', value)
end

#deleteObject

Deletes this group (Note: no contacts are deleted.)



191
192
193
# File 'lib/telerivet/group.rb', line 191

def delete()
    @api.do_request("DELETE", get_base_api_path())
end

#dynamicObject



207
208
209
# File 'lib/telerivet/group.rb', line 207

def dynamic
    get('dynamic')
end

#get_base_api_pathObject



239
240
241
# File 'lib/telerivet/group.rb', line 239

def get_base_api_path()
    "/projects/#{get('project_id')}/groups/#{get('id')}"
end

#idObject



195
196
197
# File 'lib/telerivet/group.rb', line 195

def id
    get('id')
end

#nameObject



199
200
201
# File 'lib/telerivet/group.rb', line 199

def name
    get('name')
end

#name=(value) ⇒ Object



203
204
205
# File 'lib/telerivet/group.rb', line 203

def name=(value)
    set('name', value)
end

#num_membersObject



211
212
213
# File 'lib/telerivet/group.rb', line 211

def num_members
    get('num_members')
end

#project_idObject



235
236
237
# File 'lib/telerivet/group.rb', line 235

def project_id
    get('project_id')
end

#query_contacts(options = nil) ⇒ Object

Queries contacts that are members of the given group.

Arguments:

- options (Hash)

  - name
      * Filter contacts by name
      * Allowed modifiers: name[ne], name[prefix], name[not_prefix], name[gte], name[gt],
          name[lt], name[lte]

  - phone_number
      * Filter contacts by phone number
      * Allowed modifiers: phone_number[ne], phone_number[prefix],
          phone_number[not_prefix], phone_number[gte], phone_number[gt], phone_number[lt],
          phone_number[lte], phone_number[exists]

  - time_created (UNIX timestamp)
      * Filter contacts by time created
      * Allowed modifiers: time_created[min], time_created[max]

  - last_message_time (UNIX timestamp)
      * Filter contacts by last time a message was sent or received
      * Allowed modifiers: last_message_time[min], last_message_time[max],
          last_message_time[exists]

  - last_incoming_message_time (UNIX timestamp)
      * Filter contacts by last time a message was received
      * Allowed modifiers: last_incoming_message_time[min],
          last_incoming_message_time[max], last_incoming_message_time[exists]

  - last_outgoing_message_time (UNIX timestamp)
      * Filter contacts by last time a message was sent
      * Allowed modifiers: last_outgoing_message_time[min],
          last_outgoing_message_time[max], last_outgoing_message_time[exists]

  - incoming_message_count (int)
      * Filter contacts by number of messages received from the contact
      * Allowed modifiers: incoming_message_count[ne], incoming_message_count[min],
          incoming_message_count[max]

  - outgoing_message_count (int)
      * Filter contacts by number of messages sent to the contact
      * Allowed modifiers: outgoing_message_count[ne], outgoing_message_count[min],
          outgoing_message_count[max]

  - send_blocked (bool)
      * Filter contacts by blocked status

  - vars (Hash)
      * Filter contacts by value of a custom variable (e.g. vars[email], vars[foo], etc.)
      * Allowed modifiers: vars[foo][ne], vars[foo][prefix], vars[foo][not_prefix],
          vars[foo][gte], vars[foo][gt], vars[foo][lt], vars[foo][lte], vars[foo][min],
          vars[foo][max], vars[foo][exists]

  - sort
      * Sort the results based on a field
      * Allowed values: default, name, phone_number, last_message_time
      * Default: default

  - sort_dir
      * Sort the results in ascending or descending order
      * Allowed values: asc, desc
      * Default: asc

  - page_size (int)
      * Number of results returned per page (max 500)
      * Default: 50

  - offset (int)
      * Number of items to skip from beginning of result set
      * Default: 0

Returns:

Telerivet::APICursor (of Telerivet::Contact)


129
130
131
132
# File 'lib/telerivet/group.rb', line 129

def query_contacts(options = nil)
    require_relative 'contact'
    @api.cursor(Contact, get_base_api_path() + "/contacts", options)
end

#query_scheduled_messages(options = nil) ⇒ Object

Queries scheduled messages to the given group.

Arguments:

- options (Hash)

  - message_type
      * Filter scheduled messages by message_type
      * Allowed values: sms, mms, ussd, ussd_session, call, chat, service

  - time_created (UNIX timestamp)
      * Filter scheduled messages by time_created
      * Allowed modifiers: time_created[min], time_created[max]

  - next_time (UNIX timestamp)
      * Filter scheduled messages by next_time
      * Allowed modifiers: next_time[min], next_time[max], next_time[exists]

  - relative_scheduled_id
      * Filter scheduled messages created for a relative scheduled message

  - sort
      * Sort the results based on a field
      * Allowed values: default, next_time
      * Default: default

  - sort_dir
      * Sort the results in ascending or descending order
      * Allowed values: asc, desc
      * Default: asc

  - page_size (int)
      * Number of results returned per page (max 500)
      * Default: 50

  - offset (int)
      * Number of items to skip from beginning of result set
      * Default: 0

Returns:

Telerivet::APICursor (of Telerivet::ScheduledMessage)


176
177
178
179
# File 'lib/telerivet/group.rb', line 176

def query_scheduled_messages(options = nil)
    require_relative 'scheduledmessage'
    @api.cursor(ScheduledMessage, get_base_api_path() + "/scheduled", options)
end

#saveObject

Saves any fields that have changed for this group.



184
185
186
# File 'lib/telerivet/group.rb', line 184

def save()
    super
end

#time_createdObject



215
216
217
# File 'lib/telerivet/group.rb', line 215

def time_created
    get('time_created')
end