quest_back 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 11586d8a26f2c49c1fa272a5a0f74f93c1682f0d
4
- data.tar.gz: cbda0b537c75e65812d6904271e66a74003fad9b
3
+ metadata.gz: b7c60ef5de27f5accea75be07c80da30a954c42e
4
+ data.tar.gz: c3deae3810afb2f42c46870f1d68c6fdf1883f06
5
5
  SHA512:
6
- metadata.gz: 936152bee1653f4d3633f8b5ce8d68e7a3dbe615b316fbe824466039836dfd6c27685034dab9e8d9bb335ce6d9b38e98cc48fe058e62d1867ddab5f2e4780800
7
- data.tar.gz: 3c165b8129933a20cac0fb18420efec47c7ce7826f805bb66c58fcb27050f11cf077bd1e68a139ea494b99cb28a855759fb93d2f6d248fe723ed2bacb8b8f0ea
6
+ metadata.gz: 57aa9cb3c9244253e71d2e2ee85702e4b49f5d1b79f3dab440ca04a7924b0429ad172082d3a9428a13ea4d030550f26df73586d06f61d9035f63ec0c1d6de5d0
7
+ data.tar.gz: 464c8ac3b5d820fe5299a0e1777db430c6750df8a1ddb07fbb8ef6b6ddff93aedc33b8c8dd64ba6dcb0c4eec114abe749d00aa942716d0099d59ba4c072693c2
data/.travis.yml ADDED
@@ -0,0 +1,16 @@
1
+ before_install:
2
+ - gem update bundler
3
+ rvm:
4
+ - 1.9.3
5
+ - 2.0.0
6
+ - 2.1.0
7
+ - 2.1.2
8
+ - 2.3.0
9
+ - ruby-head
10
+ - jruby-19mode
11
+ - jruby
12
+ - jruby-head
13
+ matrix:
14
+ allow_failures:
15
+ - rvm: jruby-head
16
+ - rvm: ruby-head
data/CHANGELOG.md CHANGED
@@ -1,4 +1,7 @@
1
- ## 0.0.2 (unreleased)
1
+ ## 0.0.3
2
+ * Support for operation `add_respondents_data_without_email_invitation` (by matsve)
3
+
4
+ ## 0.0.2
2
5
  * Support for operation `add_respondents_data_with_sms_invitation`.
3
6
 
4
7
  ## 0.0.1
data/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  Simple Ruby client for QuestBack's SOAP API.
4
4
 
5
+ [![Build Status](https://travis-ci.org/Skalar/quest_back.svg?branch=master)](https://travis-ci.org/Skalar/quest_back)
6
+
5
7
  ### WARNING
6
8
 
7
9
  This gem is not complete and may lack many functions provided by QuestBack.
data/Rakefile CHANGED
@@ -1 +1,9 @@
1
1
  require "bundler/gem_tasks"
2
+
3
+ require "rspec/core/rake_task"
4
+ RSpec::Core::RakeTask.new(:spec) do |t|
5
+ t.rspec_opts = ["-c", "-f progress", "-r ./spec/spec_helper.rb"]
6
+ t.pattern = 'spec/**/*_spec.rb'
7
+ end
8
+
9
+ task default: :spec
@@ -20,6 +20,7 @@ module QuestBack
20
20
  get_quests: [:user_info, :paging_info, :quest_filter],
21
21
  add_email_invitees: [:user_info, :quest_info, :emails, :sendduplicate, :language_id],
22
22
  add_respondents_data: [:user_info, :quest_info, :respondents_data, :language_id],
23
+ add_respondents_data_without_email_invitation: [:user_info, :quest_info, :respondents_data, :language_id],
23
24
  add_respondents_data_with_sms_invitation: [
24
25
  :user_info, :quest_info, :respondents_data, :language_id,
25
26
  :sms_from_number, :sms_from_text, :sms_message
@@ -39,6 +40,7 @@ module QuestBack
39
40
  get_language_list: [:language],
40
41
  add_email_invitees: [],
41
42
  add_respondents_data: [],
43
+ add_respondents_data_without_email_invitation: [],
42
44
  add_respondents_data_with_sms_invitation: []
43
45
  }
44
46
 
@@ -172,6 +174,56 @@ module QuestBack
172
174
  call :add_respondents_data, attributes, include_defaults: [:respondents_data]
173
175
  end
174
176
 
177
+ # Public: Add respondent data to a quest - optionally send as invitee as well.
178
+ # This will not send an email invitation through Questback's platform
179
+ #
180
+ # attributes - Attributes sent to QuestBack
181
+ #
182
+ # QuestBack is doing a bit of CSV over XML here? As you need to serialize
183
+ # respondent_data as a string with a delimiter ala CSV. The order of the
184
+ # data must match the order of respondent_data_header. I guess simply using XML
185
+ # and named elements was too easy? :-)
186
+ #
187
+ # Example
188
+ #
189
+ # response = api.add_respondents_data_without_email_invitation(
190
+ # quest_info: {quest_id: 4567668, security_lock: 'm0pI8orKJp'},
191
+ # respondents_data: {
192
+ # respondent_data_header: {
193
+ # respondent_data_header: [
194
+ # {
195
+ # title: 'Epost',
196
+ # type: QuestBack::Api.respondent_data_header_type_for(:text),
197
+ # is_email_field: true,
198
+ # is_sms_field: false,
199
+ # },
200
+ # {
201
+ # title: 'Navn',
202
+ # type: QuestBack::Api.respondent_data_header_type_for(:text),
203
+ # is_email_field: false,
204
+ # is_sms_field: false,
205
+ # },
206
+ # {
207
+ # title: 'Alder',
208
+ # type: QuestBack::Api.respondent_data_header_type_for(:numeric),
209
+ # is_email_field: false,
210
+ # is_sms_field: false,
211
+ # },
212
+ # ]
213
+ # },
214
+ # respondent_data: ['th@skalar.no;Thorbjorn;32'], # According to QuestBack's doc you can only do one here
215
+ # allow_duplicate: true,
216
+ # add_as_invitee: true
217
+ # }
218
+ # )
219
+ #
220
+ # You may override respondent_data's delimiter in string too.
221
+ #
222
+ # Returns QuestBack::Response
223
+ def add_respondents_data_without_email_invitation(attributes = {})
224
+ call :add_respondents_data_without_email_invitation, attributes, include_defaults: [:respondents_data]
225
+ end
226
+
175
227
  # Public: Add respondent data to a quest with SMS invitation
176
228
  #
177
229
  # attributes - Attributes sent to QuestBack
@@ -1,3 +1,3 @@
1
1
  module QuestBack
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/quest_back.gemspec CHANGED
@@ -19,9 +19,9 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_dependency "activesupport", ">= 3.2.14", "< 5"
22
- spec.add_dependency "savon", "~> 2.3.0"
22
+ spec.add_dependency "savon", "~> 2.11.1"
23
23
 
24
24
  spec.add_development_dependency "bundler", "~> 1.5"
25
- spec.add_development_dependency "rspec", "~> 2.14.1"
25
+ spec.add_development_dependency "rspec", "~> 3.4.0"
26
26
  spec.add_development_dependency "rake"
27
27
  end
@@ -0,0 +1,7 @@
1
+ <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
2
+ <s:Body>
3
+ <AddRespondentsDataWithoutEmailInvitationResponse xmlns="https://integration.questback.com/2011/03">
4
+ <AddRespondentsDataWithoutEmailInvitationResult>https://response.questback.com/isa/qbv.dll/SQ?id=4806631-329832123|218186238-SvyvBLDH</AddRespondentsDataWithoutEmailInvitationResult>
5
+ </AddRespondentsDataWithoutEmailInvitationResponse>
6
+ </s:Body>
7
+ </s:Envelope>
@@ -28,7 +28,7 @@ describe QuestBack::Api, type: :request do
28
28
  it "sets proxy building client" do
29
29
  config.http_proxy = 'http://127.0.0.1/'
30
30
 
31
- Savon::Client.should_receive(:new).
31
+ expect(Savon::Client).to receive(:new).
32
32
  with(hash_including(proxy: 'http://127.0.0.1/')).
33
33
  and_return :client
34
34
 
@@ -254,6 +254,90 @@ describe QuestBack::Api, type: :request do
254
254
  end
255
255
  end
256
256
 
257
+ describe "#add_respondents_data_without_email_invitation" do
258
+ it "makes call with expected arguments" do
259
+ expected_message = expected_default_message.merge(
260
+ quest_info: {'QuestId' => 4567668, 'SecurityLock' => 'm0pI8orKJp'},
261
+ respondents_data: {
262
+ 'RespondentDataHeader' => {
263
+ 'RespondentDataHeader' => [
264
+ {
265
+ 'Title' => 'Epost',
266
+ 'enum:Type' => 2,
267
+ 'IsEmailField' => true,
268
+ 'IsSmsField' => false
269
+ },
270
+ {
271
+ 'Title' => 'Mobil',
272
+ 'enum:Type' => 2,
273
+ 'IsEmailField' => false,
274
+ 'IsSmsField' => true
275
+ },
276
+ {
277
+ 'Title' => 'Navn',
278
+ 'enum:Type' => 2,
279
+ 'IsEmailField' => false,
280
+ 'IsSmsField' => false
281
+ },
282
+ {
283
+ 'Title' => 'Alder',
284
+ 'enum:Type' => 1,
285
+ 'IsEmailField' => false,
286
+ 'IsSmsField' => false
287
+ }
288
+ ]
289
+ },
290
+ 'RespondentData' => {'array:string' => ['th@skalar.no;404 40 404;Thorbjorn;32']},
291
+ 'Delimiter' => ';',
292
+ 'AllowDuplicate' => true,
293
+ 'AddAsInvitee' => true,
294
+ order!: ["RespondentDataHeader", "RespondentData", "Delimiter", "AllowDuplicate", "AddAsInvitee"]
295
+ },
296
+ order!: QuestBack::Api::ORDER[:add_respondents_data_without_email_invitation] - [:language_id]
297
+ )
298
+
299
+ savon.expects(:add_respondents_data_without_email_invitation).with(message: expected_message).returns success_fixture_for 'add_respondents_data_without_email_invitation'
300
+ response = subject.add_respondents_data_without_email_invitation(
301
+ quest_info: {quest_id: 4567668, security_lock: 'm0pI8orKJp'},
302
+ respondents_data: {
303
+ respondent_data_header: {
304
+ respondent_data_header: [
305
+ {
306
+ title: 'Epost',
307
+ type: QuestBack::Api.respondent_data_header_type_for(:text),
308
+ is_email_field: true,
309
+ is_sms_field: false,
310
+ },
311
+ {
312
+ title: 'Mobil',
313
+ type: QuestBack::Api.respondent_data_header_type_for(:text),
314
+ is_email_field: false,
315
+ is_sms_field: true,
316
+ },
317
+ {
318
+ title: 'Navn',
319
+ type: QuestBack::Api.respondent_data_header_type_for(:text),
320
+ is_email_field: false,
321
+ is_sms_field: false,
322
+ },
323
+ {
324
+ title: 'Alder',
325
+ type: QuestBack::Api.respondent_data_header_type_for(:numeric),
326
+ is_email_field: false,
327
+ is_sms_field: false,
328
+ },
329
+ ]
330
+ },
331
+ respondent_data: ['th@skalar.no;404 40 404;Thorbjorn;32'],
332
+ allow_duplicate: true,
333
+ add_as_invitee: true
334
+ }
335
+ )
336
+
337
+ expect(response).to be_successful
338
+ end
339
+ end
340
+
257
341
  describe "#add_respondents_data_with_sms_invitation" do
258
342
  it "makes call with expected arguments" do
259
343
  expected_message = expected_default_message.merge(
@@ -16,7 +16,7 @@ describe QuestBack::Response, type: :request do
16
16
 
17
17
  describe "#result" do
18
18
  context "singular result" do
19
- before { http.stub(:body).and_return success_fixture_for('get_quests') }
19
+ before { allow(http).to receive(:body).and_return success_fixture_for('get_quests') }
20
20
 
21
21
  it "returns the result of it's body" do
22
22
  expect(subject.result).to eq savon_response.body[:get_quests_response][:get_quests_result][:quests][:quest]
@@ -24,7 +24,7 @@ describe QuestBack::Response, type: :request do
24
24
  end
25
25
 
26
26
  context "multiple result" do
27
- before { http.stub(:body).and_return success_fixture_for('get_quests_multiple_response') }
27
+ before { allow(http).to receive(:body).and_return success_fixture_for('get_quests_multiple_response') }
28
28
 
29
29
  it "fails" do
30
30
  expect { subject.result }.to raise_error QuestBack::Error::MultipleResultsFound
@@ -34,7 +34,7 @@ describe QuestBack::Response, type: :request do
34
34
 
35
35
  describe "#results" do
36
36
  context "singular result" do
37
- before { http.stub(:body).and_return success_fixture_for('get_quests') }
37
+ before { allow(http).to receive(:body).and_return success_fixture_for('get_quests') }
38
38
 
39
39
  it "returns the result of it's body wrapped in an array" do
40
40
  expect(subject.results).to eq Array.wrap(savon_response.body[:get_quests_response][:get_quests_result][:quests][:quest])
@@ -42,7 +42,7 @@ describe QuestBack::Response, type: :request do
42
42
  end
43
43
 
44
44
  context "multiple result" do
45
- before { http.stub(:body).and_return success_fixture_for('get_quests_multiple_response') }
45
+ before { allow(http).to receive(:body).and_return success_fixture_for('get_quests_multiple_response') }
46
46
 
47
47
  it "returns the result" do
48
48
  expect(subject.results).to eq savon_response.body[:get_quests_response][:get_quests_result][:quests][:quest]
data/spec/spec_helper.rb CHANGED
@@ -25,8 +25,6 @@ end
25
25
 
26
26
 
27
27
  RSpec.configure do |c|
28
- c.treat_symbols_as_metadata_keys_with_true_values = true
29
-
30
28
  # Mock savon request tests
31
29
  c.include Savon::SpecHelper, type: :request
32
30
  c.include RequestHelpers, type: :request
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quest_back
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thorbjørn Hermansen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-24 00:00:00.000000000 Z
11
+ date: 2016-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -36,14 +36,14 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: 2.3.0
39
+ version: 2.11.1
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: 2.3.0
46
+ version: 2.11.1
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -64,14 +64,14 @@ dependencies:
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: 2.14.1
67
+ version: 3.4.0
68
68
  type: :development
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: 2.14.1
74
+ version: 3.4.0
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: rake
77
77
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +94,7 @@ extensions: []
94
94
  extra_rdoc_files: []
95
95
  files:
96
96
  - ".gitignore"
97
+ - ".travis.yml"
97
98
  - CHANGELOG.md
98
99
  - Gemfile
99
100
  - LICENSE.txt
@@ -112,6 +113,7 @@ files:
112
113
  - spec/fixtures/add_respondents_data_success.xml
113
114
  - spec/fixtures/add_respondents_data_with_sms_invitation_failure.xml
114
115
  - spec/fixtures/add_respondents_data_with_sms_invitation_success.xml
116
+ - spec/fixtures/add_respondents_data_without_email_invitation_success.xml
115
117
  - spec/fixtures/get_language_list_success.xml
116
118
  - spec/fixtures/get_quests_multiple_response_success.xml
117
119
  - spec/fixtures/get_quests_success.xml
@@ -142,7 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
142
144
  version: '0'
143
145
  requirements: []
144
146
  rubyforge_project:
145
- rubygems_version: 2.2.2
147
+ rubygems_version: 2.5.1
146
148
  signing_key:
147
149
  specification_version: 4
148
150
  summary: Ruby client for QuestBack's SOAP API.
@@ -151,6 +153,7 @@ test_files:
151
153
  - spec/fixtures/add_respondents_data_success.xml
152
154
  - spec/fixtures/add_respondents_data_with_sms_invitation_failure.xml
153
155
  - spec/fixtures/add_respondents_data_with_sms_invitation_success.xml
156
+ - spec/fixtures/add_respondents_data_without_email_invitation_success.xml
154
157
  - spec/fixtures/get_language_list_success.xml
155
158
  - spec/fixtures/get_quests_multiple_response_success.xml
156
159
  - spec/fixtures/get_quests_success.xml