questionpro_rails 0.0.6 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/questionpro_rails/api_request.rb +67 -3
- data/lib/questionpro_rails/email_batch.rb +21 -0
- data/lib/questionpro_rails/email_group.rb +12 -0
- data/lib/questionpro_rails/email_list.rb +7 -9
- data/lib/questionpro_rails/email_list_statistic.rb +1 -2
- data/lib/questionpro_rails/survey_meta.rb +38 -0
- data/lib/questionpro_rails/template.rb +12 -0
- data/lib/questionpro_rails/version.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 392c739ee6e848292c415b022e257a34c921785c
|
4
|
+
data.tar.gz: af526b9aaac803716a4938595988bd91e8c04ea4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bca6d715930431b50fa37fd0fc7e57bce09e3811e4e82f4b376c7f62e0e993df116bd3c2a3d220562cc5636dd1340d9cb25b4affde49950371e3bbb6f0762939
|
7
|
+
data.tar.gz: f728cf9f5f3c49ba66dd9aa1ba60c34f46340786ae39b1ca925f2c2b0fb20bb31f8d66f41b00f5c7b86292986f7ecdf6f5466be455f2d01c00ad2d3e2a3ab635
|
@@ -2,6 +2,8 @@ require "questionpro_rails/survey"
|
|
2
2
|
require "questionpro_rails/account"
|
3
3
|
require "questionpro_rails/email_list"
|
4
4
|
require "questionpro_rails/email_template"
|
5
|
+
require "questionpro_rails/email_batch"
|
6
|
+
require "questionpro_rails/survey_meta"
|
5
7
|
require "questionpro_rails/survey_response"
|
6
8
|
require "questionpro_rails/survey_response_count"
|
7
9
|
require "questionpro_rails/unsubscribed_email"
|
@@ -12,8 +14,9 @@ module QuestionproRails
|
|
12
14
|
format :json
|
13
15
|
base_uri 'www.questionpro.com'
|
14
16
|
|
15
|
-
attr_accessor :survey_id, :response_id, :result_mode, :start_date, :end_date,
|
16
|
-
:
|
17
|
+
attr_accessor :survey_id, :response_id, :result_mode, :start_date, :end_date,
|
18
|
+
:success, :message, :user_id, :status, :full_response,
|
19
|
+
:starting_response_counter, :email_group_id, :template_id
|
17
20
|
|
18
21
|
def initialize(survey_id = nil, response_id = nil, result_mode = 0, start_date = nil, end_date = nil, starting_response_counter = nil, email_group_id = nil, template_id = nil, user_id = nil)
|
19
22
|
@survey_id = survey_id
|
@@ -248,6 +251,67 @@ module QuestionproRails
|
|
248
251
|
end
|
249
252
|
|
250
253
|
return unsubscribers
|
251
|
-
end
|
254
|
+
end
|
255
|
+
|
256
|
+
def get_survey_meta
|
257
|
+
url = ApiRequest.base_path("questionpro.survey.sendSurveyMetaData")
|
258
|
+
result = self.class.get(url, body: self.options)
|
259
|
+
|
260
|
+
self.full_response = result
|
261
|
+
self.status = result['status']
|
262
|
+
|
263
|
+
survey_meta = SurveyMeta.new(result['response'])
|
264
|
+
|
265
|
+
return survey_meta
|
266
|
+
end
|
267
|
+
|
268
|
+
def send_survey(mode = 1, emails = nil, template = nil)
|
269
|
+
url = ApiRequest.base_path("questionpro.survey.sendSurvey")
|
270
|
+
result = self.class.get(url, body: {surveyID: self.survey_id, mode: mode,
|
271
|
+
emailGroupID: self.email_group_id, emails: emails,
|
272
|
+
templateID: self.template_id, template: template}.compact.to_json)
|
273
|
+
|
274
|
+
self.full_response = result
|
275
|
+
self.status = result['status']
|
276
|
+
self.message = result['response']['result']
|
277
|
+
end
|
278
|
+
|
279
|
+
def get_send_history
|
280
|
+
url = ApiRequest.base_path("questionpro.survey.emailBatchStatistics")
|
281
|
+
result = self.class.get(url, body: self.options)
|
282
|
+
|
283
|
+
self.full_response = result
|
284
|
+
self.status = result['status']
|
285
|
+
|
286
|
+
email_batches = []
|
287
|
+
result_email_batches = result['response']['emailBatches']
|
288
|
+
result_email_batches.each do |email_batch|
|
289
|
+
email_batches.push(EmailBatch.new(email_batch))
|
290
|
+
end
|
291
|
+
|
292
|
+
return email_batches
|
293
|
+
end
|
294
|
+
|
295
|
+
def send_reminders
|
296
|
+
url = ApiRequest.base_path("questionpro.survey.sendReminder")
|
297
|
+
result = self.class.get(url, body: self.options)
|
298
|
+
|
299
|
+
self.full_response = result
|
300
|
+
self.status = result['status']
|
301
|
+
self.message = result['response']['result']
|
302
|
+
end
|
303
|
+
|
304
|
+
def create_email_list (emails = [], email_group_name = nil)
|
305
|
+
url = ApiRequest.base_path("questionpro.survey.createEmailGroup")
|
306
|
+
result = self.class.get(url, body: {id: self.survey_id, emails: emails,
|
307
|
+
emailGroupName: email_group_name}.compact.to_json)
|
308
|
+
|
309
|
+
self.full_response = result
|
310
|
+
self.status = result['status']
|
311
|
+
|
312
|
+
unless result['response']['result']['emailGroupID'].nil?
|
313
|
+
self.email_group_id = result['response']['result']['emailGroupID']
|
314
|
+
end
|
315
|
+
end
|
252
316
|
end
|
253
317
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module QuestionproRails
|
2
|
+
class EmailBatch
|
3
|
+
|
4
|
+
attr_reader :id, :email_group, :viewed, :completed, :participation_rate,
|
5
|
+
:batch_type, :participation_pending, :timestamp, :initial_sent, :status
|
6
|
+
|
7
|
+
def initialize (attributes)
|
8
|
+
@id = attributes['batchID']
|
9
|
+
@email_group = attributes['emailGroup']
|
10
|
+
@viewed = attributes['viewed']
|
11
|
+
@completed = attributes['completed']
|
12
|
+
@participation_rate = attributes['participationRate']
|
13
|
+
@batch_type = attributes['batchType']
|
14
|
+
@participation_pending = attributes['participationPending']
|
15
|
+
@timestamp = attributes['timestamp']
|
16
|
+
@initial_sent = attributes['initialSent']
|
17
|
+
@status = attributes['status']
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
@@ -3,14 +3,14 @@ require "questionpro_rails/email_list_statistic"
|
|
3
3
|
module QuestionproRails
|
4
4
|
class EmailList
|
5
5
|
|
6
|
-
attr_reader :survey_id, :name, :email_group_id, :
|
6
|
+
attr_reader :survey_id, :name, :email_group_id, :qp_emails, :qp_statistics,
|
7
7
|
:unsubscribed, :total, :active, :pendin_verification, :bounced
|
8
8
|
|
9
|
-
def initialize (attributes)
|
9
|
+
def initialize (attributes)
|
10
10
|
@survey_id = attributes['surveyID']
|
11
|
-
@name = attributes['name']
|
12
11
|
@email_group_id = attributes['emailGroupID']
|
13
|
-
@
|
12
|
+
@name = attributes['name']
|
13
|
+
@qp_emails = attributes['email']
|
14
14
|
@qp_statistics = attributes['statistics']
|
15
15
|
@unsubscribed = attributes['unsubscribed']
|
16
16
|
@total = attributes['total']
|
@@ -23,17 +23,15 @@ module QuestionproRails
|
|
23
23
|
extracted_statistics = []
|
24
24
|
|
25
25
|
if self.qp_statistics.any?
|
26
|
-
|
27
|
-
extracted_statistics.push(EmailListStatistic.new(statistic))
|
28
|
-
end
|
26
|
+
extracted_statistics.push(EmailListStatistic.new(qp_statistics))
|
29
27
|
end
|
30
28
|
|
31
29
|
return extracted_statistics
|
32
30
|
end
|
33
31
|
|
34
32
|
def emails
|
35
|
-
unless self.
|
36
|
-
return self.
|
33
|
+
unless self.qp_emails.empty?
|
34
|
+
return self.qp_emails.split(',')
|
37
35
|
end
|
38
36
|
end
|
39
37
|
|
@@ -1,11 +1,10 @@
|
|
1
1
|
module QuestionproRails
|
2
2
|
class EmailListStatistic
|
3
3
|
|
4
|
-
attr_reader :
|
4
|
+
attr_reader :unsubscribed, :total, :active,
|
5
5
|
:pendin_verification, :bounced
|
6
6
|
|
7
7
|
def initialize (attributes)
|
8
|
-
@statistics = attributes['statistics']
|
9
8
|
@unsubscribed = attributes['unsubscribed']
|
10
9
|
@total = attributes['total']
|
11
10
|
@active = attributes['active']
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require "questionpro_rails/email_group"
|
2
|
+
require "questionpro_rails/template"
|
3
|
+
|
4
|
+
module QuestionproRails
|
5
|
+
class SurveyMeta
|
6
|
+
|
7
|
+
attr_reader :email_groups_list, :templates_list
|
8
|
+
|
9
|
+
def initialize (attributes)
|
10
|
+
@email_groups_list = attributes['emailGroups']
|
11
|
+
@templates_list = attributes['templates']
|
12
|
+
end
|
13
|
+
|
14
|
+
def email_groups
|
15
|
+
extracted_groups = []
|
16
|
+
|
17
|
+
unless self.email_groups_list.empty?
|
18
|
+
self.email_groups_list.each do |email_group|
|
19
|
+
extracted_groups.push(EmailGroup.new(email_group))
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
return extracted_groups
|
24
|
+
end
|
25
|
+
|
26
|
+
def templates
|
27
|
+
extracted_templates = []
|
28
|
+
|
29
|
+
unless self.templates_list.empty?
|
30
|
+
self.templates_list.each do |template|
|
31
|
+
extracted_templates.push(Template.new(template))
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
return extracted_templates
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: questionpro_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Assem Deghady
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -78,6 +78,8 @@ files:
|
|
78
78
|
- lib/questionpro_rails/api_request.rb
|
79
79
|
- lib/questionpro_rails/choice.rb
|
80
80
|
- lib/questionpro_rails/configuration.rb
|
81
|
+
- lib/questionpro_rails/email_batch.rb
|
82
|
+
- lib/questionpro_rails/email_group.rb
|
81
83
|
- lib/questionpro_rails/email_list.rb
|
82
84
|
- lib/questionpro_rails/email_list_statistic.rb
|
83
85
|
- lib/questionpro_rails/email_template.rb
|
@@ -86,8 +88,10 @@ files:
|
|
86
88
|
- lib/questionpro_rails/response_set.rb
|
87
89
|
- lib/questionpro_rails/section.rb
|
88
90
|
- lib/questionpro_rails/survey.rb
|
91
|
+
- lib/questionpro_rails/survey_meta.rb
|
89
92
|
- lib/questionpro_rails/survey_response.rb
|
90
93
|
- lib/questionpro_rails/survey_response_count.rb
|
94
|
+
- lib/questionpro_rails/template.rb
|
91
95
|
- lib/questionpro_rails/unsubscribed_email.rb
|
92
96
|
- lib/questionpro_rails/version.rb
|
93
97
|
homepage: https://github.com/AssemDeghady/questionpro_rails
|