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

- num_members (int)
    * Number of contacts in the group
    * Read-only

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

- vars (Hash)
    * Custom variables stored for this group
    * 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_data, #set, #set_data, #to_s, #vars

Constructor Details

This class inherits a constructor from Telerivet::Entity

Instance Method Details

#deleteObject

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



147
148
149
# File 'lib/telerivet/group.rb', line 147

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

#get_base_api_pathObject



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

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

#idObject



151
152
153
# File 'lib/telerivet/group.rb', line 151

def id
    get('id')
end

#nameObject



155
156
157
# File 'lib/telerivet/group.rb', line 155

def name
    get('name')
end

#name=(value) ⇒ Object



159
160
161
# File 'lib/telerivet/group.rb', line 159

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

#num_membersObject



163
164
165
# File 'lib/telerivet/group.rb', line 163

def num_members
    get('num_members')
end

#project_idObject



171
172
173
# File 'lib/telerivet/group.rb', line 171

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]

  - time_created (UNIX timestamp)
      * Filter contacts by time created
      * Allowed modifiers: time_created[ne], 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[exists], last_message_time[ne],
          last_message_time[min], last_message_time[max]

  - vars (Hash)
      * Filter contacts by value of a custom variable (e.g. vars[email], vars[foo], etc.)
      * Allowed modifiers: vars[foo][exists], 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]

  - 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 200)
      * Default: 50

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

Returns:

Telerivet::APICursor (of Telerivet::Contact)


87
88
89
90
# File 'lib/telerivet/group.rb', line 87

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, call

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

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

  - sort
      * Sort the results based on a field
      * Allowed values: default, name
      * 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 200)
      * Default: 50

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

Returns:

Telerivet::APICursor (of Telerivet::ScheduledMessage)


132
133
134
135
# File 'lib/telerivet/group.rb', line 132

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.



140
141
142
# File 'lib/telerivet/group.rb', line 140

def save()
    super
end

#time_createdObject



167
168
169
# File 'lib/telerivet/group.rb', line 167

def time_created
    get('time_created')
end