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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 25fa27421feff20182934df930901dcef7f57ee0
4
- data.tar.gz: 9e5bb13740c6376682e0ba2e351dd288a89327f3
3
+ metadata.gz: 392c739ee6e848292c415b022e257a34c921785c
4
+ data.tar.gz: af526b9aaac803716a4938595988bd91e8c04ea4
5
5
  SHA512:
6
- metadata.gz: 3a4ea56c30791509b56041690d81f759fe8959528525e2bd97776d022c36dc370d80ce19998d4502397b98b2af03cff3a785d97359d91a647b64da544634ac07
7
- data.tar.gz: c2d0f10996afa38501b5fac4929f8baf4d6044a205a568248a169b2f88a1fcd6dd4c521a53f20f5d6d7c7a425d924e199d7f657d5e21478b3772b6b5f1b58e75
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, :starting_response_counter,
16
- :email_group_id, :template_id, :user_id,:status, :full_response, :success
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
@@ -0,0 +1,12 @@
1
+ module QuestionproRails
2
+ class EmailGroup
3
+
4
+ attr_reader :id, :email_group_name
5
+
6
+ def initialize (attributes)
7
+ @id = attributes['emailGroupID']
8
+ @email_group_name = attributes['emailGroupName']
9
+ end
10
+
11
+ end
12
+ 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, :email, :qp_statistics,
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
- @email = attributes['email']
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
- self.qp_statistics.each do |statistic|
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.email.blank?
36
- return self.email.split(',')
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 :statistics, :unsubscribed, :total, :active,
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
@@ -0,0 +1,12 @@
1
+ module QuestionproRails
2
+ class Template
3
+
4
+ attr_reader :id, :template_subject
5
+
6
+ def initialize (attributes)
7
+ @id = attributes['templateID']
8
+ @template_subject = attributes['templateSubject']
9
+ end
10
+
11
+ end
12
+ end
@@ -1,3 +1,3 @@
1
1
  module QuestionproRails
2
- VERSION = "0.0.6"
2
+ VERSION = "0.1.0"
3
3
  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.6
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-28 00:00:00.000000000 Z
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