telerivet 1.5.0 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -15,11 +15,53 @@ module Telerivet
15
15
  # * Updatable via API
16
16
  #
17
17
  # - timezone_id
18
- # * Billing quota time zone ID; see
19
- # <http://en.wikipedia.org/wiki/List_of_tz_database_time_zones>
18
+ # * Billing quota time zone ID; see [List of tz database time zones Wikipedia
19
+ # article](http://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
20
20
  # * Updatable via API
21
21
  #
22
22
  class Organization < Entity
23
+ #
24
+ # Creates a new project.
25
+ #
26
+ # Some project settings are not currently possible to configure via
27
+ # the API, and can only be edited via the web app after the project is created.
28
+ #
29
+ # Arguments:
30
+ # - options (Hash)
31
+ # * Required
32
+ #
33
+ # - name (string)
34
+ # * Name of the project to create, which must be unique in the organization.
35
+ # * Required
36
+ #
37
+ # - timezone_id
38
+ # * Default TZ database timezone ID; see [List of tz database time zones Wikipedia
39
+ # article](http://en.wikipedia.org/wiki/List_of_tz_database_time_zones). This timezone
40
+ # is used when computing statistics by date.
41
+ #
42
+ # - url_slug
43
+ # * Unique string used as a component of the project's URL in the Telerivet web app.
44
+ # If not provided, a URL slug will be generated automatically.
45
+ #
46
+ # - auto_create_contacts (bool)
47
+ # * If true, a contact will be automatically created for each unique phone number that
48
+ # a message is sent to or received from. If false, contacts will not automatically be
49
+ # created (unless contact information is modified by an automated service). The
50
+ # Conversations tab in the web app will only show messages that are associated with a
51
+ # contact.
52
+ # * Default: 1
53
+ #
54
+ # - vars
55
+ # * Custom variables and values to set for this project
56
+ #
57
+ # Returns:
58
+ # Telerivet::Project
59
+ #
60
+ def create_project(options)
61
+ require_relative 'project'
62
+ Project.new(@api, @api.do_request("POST", get_base_api_path() + "/projects", options))
63
+ end
64
+
23
65
  #
24
66
  # Saves any fields that have changed for this organization.
25
67
  #
@@ -98,6 +140,86 @@ class Organization < Entity
98
140
  return @api.do_request("GET", get_base_api_path() + "/usage/#{usage_type}")
99
141
  end
100
142
 
143
+ #
144
+ # Retrieves statistics about messages sent or received via Telerivet. This endpoint returns
145
+ # historical data that is computed shortly after midnight each day in the project's time zone,
146
+ # and does not contain message statistics for the current day.
147
+ #
148
+ # Arguments:
149
+ # - options (Hash)
150
+ # * Required
151
+ #
152
+ # - start_date (string)
153
+ # * Start date of message statistics, in YYYY-MM-DD format
154
+ # * Required
155
+ #
156
+ # - end_date (string)
157
+ # * End date of message statistics (inclusive), in YYYY-MM-DD format
158
+ # * Required
159
+ #
160
+ # - rollup (string)
161
+ # * Date interval to group by
162
+ # * Allowed values: day, week, month, year, all
163
+ # * Default: day
164
+ #
165
+ # - properties (string)
166
+ # * Comma separated list of properties to group by
167
+ # * Allowed values: org_id, org_name, org_industry, project_id, project_name, user_id,
168
+ # user_email, user_name, phone_id, phone_name, phone_type, direction, source, status,
169
+ # network_code, network_name, message_type, service_id, service_name, simulated, link
170
+ #
171
+ # - metrics (string)
172
+ # * Comma separated list of metrics to return (summed for each distinct value of the
173
+ # requested properties)
174
+ # * Allowed values: count, num_parts, duration, price
175
+ # * Required
176
+ #
177
+ # - currency (string)
178
+ # * Three-letter ISO 4217 currency code used when returning the 'price' field. If the
179
+ # original price was in a different currency, it will be converted to the requested
180
+ # currency using the approximate current exchange rate.
181
+ # * Default: USD
182
+ #
183
+ # - filters (Hash)
184
+ # * Key-value pairs of properties and corresponding values; the returned statistics
185
+ # will only include messages where the property matches the provided value. Only the
186
+ # following properties are supported for filters: `user_id`, `phone_id`, `direction`,
187
+ # `source`, `status`, `service_id`, `simulated`, `message_type`, `network_code`
188
+ #
189
+ # Returns:
190
+ # (associative array)
191
+ # - intervals (array)
192
+ # * List of objects representing each date interval containing at least one message
193
+ # matching the filters.
194
+ # Each object has the following properties:
195
+ #
196
+ # <table>
197
+ # <tr><td> start_time </td> <td> The UNIX timestamp of the start
198
+ # of the interval (int) </td></tr>
199
+ # <tr><td> end_time </td> <td> The UNIX timestamp of the end of
200
+ # the interval, exclusive (int) </td></tr>
201
+ # <tr><td> start_date </td> <td> The date of the start of the
202
+ # interval in YYYY-MM-DD format (string) </td></tr>
203
+ # <tr><td> end_date </td> <td> The date of the end of the
204
+ # interval in YYYY-MM-DD format, inclusive (string) </td></tr>
205
+ # <tr><td> groups </td> <td> Array of groups for each
206
+ # combination of requested property values matching the filters (array)
207
+ # <br /><br />
208
+ # Each object has the following properties:
209
+ # <table>
210
+ # <tr><td> properties </td> <td> An object of key/value
211
+ # pairs for each distinct value of the requested properties (object) </td></tr>
212
+ # <tr><td> metrics </td> <td> An object of key/value pairs
213
+ # for each requested metric (object) </td></tr>
214
+ # </table>
215
+ # </td></tr>
216
+ # </table>
217
+ #
218
+ def get_message_stats(options)
219
+ data = @api.do_request("GET", get_base_api_path() + "/message_stats", options)
220
+ return data
221
+ end
222
+
101
223
  #
102
224
  # Queries projects in this organization.
103
225
  #
@@ -2,7 +2,8 @@
2
2
  module Telerivet
3
3
 
4
4
  #
5
- # Represents a phone or gateway that you use to send/receive messages via Telerivet.
5
+ # Represents a basic route (i.e. a phone or gateway) that you use to send/receive messages via
6
+ # Telerivet.
6
7
  #
7
8
  # Basic Routes were formerly referred to as "Phones" within Telerivet. API
8
9
  # methods, parameters, and properties related to Basic Routes continue to use the term "Phone"
@@ -73,15 +74,16 @@ module Telerivet
73
74
  #
74
75
  # - android_sdk (int)
75
76
  # * Android SDK level, indicating the approximate version of the Android OS installed on
76
- # this phone; see
77
- # <http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels>
77
+ # this phone; see [list of Android SDK
78
+ # levels](http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)
78
79
  # (only present for Android phones)
79
80
  # * Read-only
80
81
  #
81
82
  # - mccmnc
82
83
  # * Code indicating the Android phone's current country (MCC) and mobile network
83
- # operator (MNC); see <http://en.wikipedia.org/wiki/Mobile_country_code> (only present
84
- # for Android phones). Note this is a string containing numeric digits, not an integer.
84
+ # operator (MNC); see [Mobile country code Wikipedia
85
+ # article](https://en.wikipedia.org/wiki/Mobile_country_code) (only present for Android
86
+ # phones). Note this is a string containing numeric digits, not an integer.
85
87
  # * Read-only
86
88
  #
87
89
  # - manufacturer
@@ -100,7 +102,7 @@ module Telerivet
100
102
  #
101
103
  class Phone < Entity
102
104
  #
103
- # Queries messages sent or received by this phone.
105
+ # Queries messages sent or received by this basic route.
104
106
  #
105
107
  # Arguments:
106
108
  # - options (Hash)
@@ -111,7 +113,7 @@ class Phone < Entity
111
113
  #
112
114
  # - message_type
113
115
  # * Filter messages by message_type
114
- # * Allowed values: sms, mms, ussd, call, service
116
+ # * Allowed values: sms, mms, ussd, ussd_session, call, chat, service
115
117
  #
116
118
  # - source
117
119
  # * Filter messages by source
@@ -124,7 +126,7 @@ class Phone < Entity
124
126
  # - status
125
127
  # * Filter messages by status
126
128
  # * Allowed values: ignored, processing, received, sent, queued, failed,
127
- # failed_queued, cancelled, delivered, not_delivered
129
+ # failed_queued, cancelled, delivered, not_delivered, read
128
130
  #
129
131
  # - time_created[min] (UNIX timestamp)
130
132
  # * Filter messages created on or after a particular time
@@ -134,18 +136,26 @@ class Phone < Entity
134
136
  #
135
137
  # - external_id
136
138
  # * Filter messages by ID from an external provider
139
+ # * Allowed modifiers: external_id[ne], external_id[exists]
137
140
  #
138
141
  # - contact_id
139
142
  # * ID of the contact who sent/received the message
143
+ # * Allowed modifiers: contact_id[ne], contact_id[exists]
140
144
  #
141
145
  # - phone_id
142
146
  # * ID of the phone (basic route) that sent/received the message
143
147
  #
144
148
  # - broadcast_id
145
149
  # * ID of the broadcast containing the message
150
+ # * Allowed modifiers: broadcast_id[ne], broadcast_id[exists]
146
151
  #
147
152
  # - scheduled_id
148
153
  # * ID of the scheduled message that created this message
154
+ # * Allowed modifiers: scheduled_id[ne], scheduled_id[exists]
155
+ #
156
+ # - group_id
157
+ # * Filter messages sent or received by contacts in a particular group. The group must
158
+ # be a normal group, not a dynamic group.
149
159
  #
150
160
  # - sort
151
161
  # * Sort the results based on a field
@@ -174,7 +184,7 @@ class Phone < Entity
174
184
  end
175
185
 
176
186
  #
177
- # Saves any fields or custom variables that have changed for this phone.
187
+ # Saves any fields or custom variables that have changed for this basic route.
178
188
  #
179
189
  def save()
180
190
  super