qualtrics_api 0.0.8 → 0.0.9
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/README.md +0 -7
- data/fixtures/vcr_cassettes/panel_collection_fetch_fail.yml +10 -8
- data/fixtures/vcr_cassettes/panel_collection_fetch_success.yml +14 -11
- data/fixtures/vcr_cassettes/panel_import_update_success.yml +12 -10
- data/fixtures/vcr_cassettes/panel_member_collection_create_fail.yml +4 -2
- data/fixtures/vcr_cassettes/panel_member_collection_create_success.yml +33 -26
- data/fixtures/vcr_cassettes/panel_member_collection_fetch_success.yml +15 -12
- data/fixtures/vcr_cassettes/response_export_start_success.yml +19 -14
- data/fixtures/vcr_cassettes/response_export_update_success.yml +12 -38
- data/fixtures/vcr_cassettes/survey_collection_fetch_fail.yml +4 -2
- data/fixtures/vcr_cassettes/survey_collection_fetch_sucess.yml +12 -10
- data/lib/qualtrics_api/client.rb +3 -3
- data/lib/qualtrics_api/panel_collection.rb +4 -4
- data/lib/qualtrics_api/panel_import.rb +1 -1
- data/lib/qualtrics_api/panel_member.rb +8 -8
- data/lib/qualtrics_api/panel_member_collection.rb +9 -6
- data/lib/qualtrics_api/request_error_handler.rb +5 -9
- data/lib/qualtrics_api/response_export.rb +2 -2
- data/lib/qualtrics_api/services/response_export_service.rb +13 -19
- data/lib/qualtrics_api/survey.rb +2 -4
- data/lib/qualtrics_api/survey_collection.rb +4 -30
- data/lib/qualtrics_api/url.rb +1 -1
- data/lib/qualtrics_api/version.rb +1 -1
- data/qualtrics_api.gemspec +3 -3
- data/spec/lib/client_spec.rb +0 -4
- data/spec/lib/panel_import_spec.rb +2 -2
- data/spec/lib/panel_member_collection_spec.rb +4 -4
- data/spec/lib/panel_member_spec.rb +8 -8
- data/spec/lib/response_export_spec.rb +1 -1
- data/spec/lib/services/response_export_service_spec.rb +25 -29
- data/spec/lib/survey_collection_spec.rb +1 -28
- data/spec/lib/survey_spec.rb +2 -6
- data/spec/spec_helper.rb +1 -1
- metadata +9 -10
- data/fixtures/vcr_cassettes/survey_collection_fetch_with_scopeId_success.yml +0 -33
@@ -66,14 +66,14 @@ describe QualtricsAPI::PanelMember do
|
|
66
66
|
|
67
67
|
it "serialize array of panel members" do
|
68
68
|
expect(JSON.parse(members)).to eq(
|
69
|
-
[{ "
|
70
|
-
"
|
71
|
-
"
|
72
|
-
"
|
73
|
-
"
|
74
|
-
"
|
75
|
-
"
|
76
|
-
"
|
69
|
+
[{ "recipientID" => "ML_abcdefg",
|
70
|
+
"firstName" => "Thom",
|
71
|
+
"lastName" => "Yorke",
|
72
|
+
"email" => "thom@radiohead.com",
|
73
|
+
"language" => "EN",
|
74
|
+
"unsubscribed" => 1,
|
75
|
+
"externalReference" => "1234",
|
76
|
+
"embeddedData" => { "a" => "b", "b" => "c" } }])
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
@@ -75,7 +75,7 @@ describe QualtricsAPI::ResponseExport do
|
|
75
75
|
describe "#update_status" do
|
76
76
|
it "updates the status of the export then returns itself" do
|
77
77
|
VCR.use_cassette("response_export_update_success") do
|
78
|
-
subject = described_class.new id: "
|
78
|
+
subject = described_class.new id: "ES_abcd"
|
79
79
|
|
80
80
|
result = subject.update_status
|
81
81
|
|
@@ -4,20 +4,17 @@ describe QualtricsAPI::Services::ResponseExportService do
|
|
4
4
|
describe "initialize" do
|
5
5
|
let(:params) do
|
6
6
|
{
|
7
|
+
format: "file type",
|
7
8
|
survey_id: "s_id",
|
8
|
-
response_set_id: "r_set_id",
|
9
|
-
file_type: "file type",
|
10
9
|
last_response_id: "l_id",
|
11
10
|
start_date: "03/22/2015 06:11:11",
|
12
11
|
end_date: "03/25/2015 06:00:00",
|
13
12
|
limit: "1000",
|
14
13
|
included_question_ids: "ids,ids",
|
15
|
-
max_rows: "1000",
|
16
14
|
use_labels: true,
|
17
|
-
|
15
|
+
decimal_separator: ",",
|
18
16
|
seen_unanswered_recode: "something",
|
19
|
-
use_local_time: true
|
20
|
-
spss_string_length: "15"
|
17
|
+
use_local_time: true
|
21
18
|
}
|
22
19
|
end
|
23
20
|
subject { described_class.new params }
|
@@ -44,39 +41,38 @@ describe QualtricsAPI::Services::ResponseExportService do
|
|
44
41
|
expect(subject.use_local_time).to eq false
|
45
42
|
end
|
46
43
|
|
47
|
-
it "has default @
|
48
|
-
expect(subject.
|
44
|
+
it "has default @format - csv" do
|
45
|
+
expect(subject.format).to eq 'csv'
|
49
46
|
end
|
50
47
|
|
51
|
-
it "has default @
|
52
|
-
expect(subject.
|
48
|
+
it "has default @decimal_separator - ." do
|
49
|
+
expect(subject.decimal_separator).to eq '.'
|
53
50
|
end
|
54
51
|
end
|
55
52
|
end
|
56
53
|
|
57
54
|
describe "#start" do
|
58
55
|
it "calls url with export params" do
|
59
|
-
expect(QualtricsAPI.connection)
|
60
|
-
|
61
|
-
"
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
}).and_return(double('resBody', body: {"result" => { "exportStatus" => "some/url" }}))
|
56
|
+
expect(QualtricsAPI.connection)
|
57
|
+
.to receive(:post)
|
58
|
+
.with("responseexports",
|
59
|
+
"format" => "file type",
|
60
|
+
"surveyId" => "s_id",
|
61
|
+
"lastResponseId" => "l_id",
|
62
|
+
"startDate" => "03/22/2015 06:11:11",
|
63
|
+
"endDate" => "03/25/2015 06:00:00",
|
64
|
+
"limit" => "1000",
|
65
|
+
"includedQuestionIds" => "ids,ids",
|
66
|
+
"useLabels" => true,
|
67
|
+
"decimalSeparator" => ",",
|
68
|
+
"seenUnansweredRecode" => "something",
|
69
|
+
"useLocalTime" => true).and_return(double('resBody', body: { "result" => { "exportStatus" => "some/url" } }))
|
74
70
|
subject.start
|
75
71
|
end
|
76
72
|
|
77
73
|
it "assigns and returns a ResponseExport with the id in the url" do
|
78
|
-
allow(QualtricsAPI.connection).to receive(:
|
79
|
-
.and_return(double('resBody', body: {"result" => { "
|
74
|
+
allow(QualtricsAPI.connection).to receive(:post)
|
75
|
+
.and_return(double('resBody', body: { "result" => { "id" => "exportId" } }))
|
80
76
|
sut = subject.start
|
81
77
|
expect(sut).to be_a QualtricsAPI::ResponseExport
|
82
78
|
expect(subject.result).to eq sut
|
@@ -87,14 +83,14 @@ describe QualtricsAPI::Services::ResponseExportService do
|
|
87
83
|
describe "#integration" do
|
88
84
|
subject do
|
89
85
|
VCR.use_cassette("response_export_start_success") do
|
90
|
-
QualtricsAPI.surveys["
|
86
|
+
QualtricsAPI.surveys["SV_bpCTGQvjOqgd4RD"].export_responses.start
|
91
87
|
end
|
92
88
|
end
|
93
89
|
|
94
90
|
it "assigns @result with the export id" do
|
95
91
|
expect(subject).to_not be_nil
|
96
92
|
expect(subject).to be_a QualtricsAPI::ResponseExport
|
97
|
-
expect(subject.id).to eq "
|
93
|
+
expect(subject.id).to eq "ES_to9jgploprbdnvi7uir84vq59l"
|
98
94
|
end
|
99
95
|
end
|
100
96
|
end
|
@@ -1,27 +1,10 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe QualtricsAPI::SurveyCollection do
|
4
|
-
subject { described_class.new scope_id: "fake_scopeId" }
|
5
|
-
|
6
|
-
it "has a scope_id" do
|
7
|
-
expect(subject.scope_id).to eq "fake_scopeId"
|
8
|
-
end
|
9
|
-
|
10
4
|
it "has no @all when initialized" do
|
11
5
|
expect(subject.all).to eq []
|
12
6
|
end
|
13
7
|
|
14
|
-
it "can assign scope_id" do
|
15
|
-
expect(subject).to respond_to :scope_id=
|
16
|
-
end
|
17
|
-
|
18
|
-
describe "#query_attributes" do
|
19
|
-
it "returns only scope_id" do
|
20
|
-
expect(subject.query_attributes.size).to eq 1
|
21
|
-
expect(subject.query_attributes[:scope_id]).to eq "fake_scopeId"
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
8
|
describe "#find, #[]" do
|
26
9
|
let(:survey_1) { QualtricsAPI::Survey.new "id" => "s1" }
|
27
10
|
let(:survey_2) { QualtricsAPI::Survey.new "id" => "s2" }
|
@@ -69,21 +52,11 @@ describe QualtricsAPI::SurveyCollection do
|
|
69
52
|
subject.instance_variable_set :@all, [QualtricsAPI::Survey.new({})]
|
70
53
|
expect {
|
71
54
|
VCR.use_cassette("survey_collection_fetch_fail") do
|
72
|
-
subject.fetch
|
55
|
+
subject.fetch rescue nil
|
73
56
|
end
|
74
57
|
}.to change { subject.all }.to([])
|
75
58
|
end
|
76
59
|
end
|
77
|
-
|
78
|
-
describe "with options" do
|
79
|
-
it "updates the options" do
|
80
|
-
VCR.use_cassette("survey_collection_fetch_with_scopeId_success") do
|
81
|
-
expect(subject.scope_id).to be_nil
|
82
|
-
subject.fetch(scope_id: "UR_3fnAz35QCGlr725")
|
83
|
-
expect(subject.scope_id).to eq "UR_3fnAz35QCGlr725"
|
84
|
-
end
|
85
|
-
end
|
86
|
-
end
|
87
60
|
end
|
88
61
|
end
|
89
62
|
|
data/spec/lib/survey_spec.rb
CHANGED
@@ -30,12 +30,8 @@ describe QualtricsAPI::Survey do
|
|
30
30
|
expect(subject.last_modified).to eq qualtrics_response["lastModified"]
|
31
31
|
end
|
32
32
|
|
33
|
-
it "has
|
34
|
-
expect(subject.
|
35
|
-
end
|
36
|
-
|
37
|
-
it "has status" do
|
38
|
-
expect(subject.status).to eq qualtrics_response["status"]
|
33
|
+
it "has is_active" do
|
34
|
+
expect(subject.is_active).to eq qualtrics_response["is_active"]
|
39
35
|
end
|
40
36
|
|
41
37
|
describe "export_responses" do
|
data/spec/spec_helper.rb
CHANGED
@@ -2,7 +2,7 @@ require 'qualtrics_api'
|
|
2
2
|
require 'pry'
|
3
3
|
require 'vcr'
|
4
4
|
|
5
|
-
TEST_API_TOKEN = "6Wpo0Vsx1cN1kcHivCaGTz5IhOvchLrg1o4L0KOZ"
|
5
|
+
TEST_API_TOKEN = "6Wpo0Vsx1cN1kcHivCaGTz5IhOvchLrg1o4L0KOZ".freeze
|
6
6
|
|
7
7
|
VCR.configure do |config|
|
8
8
|
config.cassette_library_dir = "fixtures/vcr_cassettes"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qualtrics_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yurui Zhang
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2016-04-21 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: faraday
|
@@ -60,42 +60,42 @@ dependencies:
|
|
60
60
|
requirements:
|
61
61
|
- - "~>"
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version: '1.
|
63
|
+
version: '1.11'
|
64
64
|
type: :development
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
68
|
- - "~>"
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version: '1.
|
70
|
+
version: '1.11'
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: rake
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
75
|
- - "~>"
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: '
|
77
|
+
version: '11.1'
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
82
|
- - "~>"
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version: '
|
84
|
+
version: '11.1'
|
85
85
|
- !ruby/object:Gem::Dependency
|
86
86
|
name: rspec
|
87
87
|
requirement: !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
89
|
- - "~>"
|
90
90
|
- !ruby/object:Gem::Version
|
91
|
-
version: '3.
|
91
|
+
version: '3.4'
|
92
92
|
type: :development
|
93
93
|
prerelease: false
|
94
94
|
version_requirements: !ruby/object:Gem::Requirement
|
95
95
|
requirements:
|
96
96
|
- - "~>"
|
97
97
|
- !ruby/object:Gem::Version
|
98
|
-
version: '3.
|
98
|
+
version: '3.4'
|
99
99
|
- !ruby/object:Gem::Dependency
|
100
100
|
name: vcr
|
101
101
|
requirement: !ruby/object:Gem::Requirement
|
@@ -168,7 +168,6 @@ files:
|
|
168
168
|
- fixtures/vcr_cassettes/response_export_update_success.yml
|
169
169
|
- fixtures/vcr_cassettes/survey_collection_fetch_fail.yml
|
170
170
|
- fixtures/vcr_cassettes/survey_collection_fetch_sucess.yml
|
171
|
-
- fixtures/vcr_cassettes/survey_collection_fetch_with_scopeId_success.yml
|
172
171
|
- lib/qualtrics_api.rb
|
173
172
|
- lib/qualtrics_api/base_collection.rb
|
174
173
|
- lib/qualtrics_api/base_model.rb
|
@@ -224,7 +223,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
224
223
|
version: '0'
|
225
224
|
requirements: []
|
226
225
|
rubyforge_project:
|
227
|
-
rubygems_version: 2.
|
226
|
+
rubygems_version: 2.5.1
|
228
227
|
signing_key:
|
229
228
|
specification_version: 4
|
230
229
|
summary: A Ruby wrapper for Qualtrics REST API v3.0
|
@@ -1,33 +0,0 @@
|
|
1
|
-
---
|
2
|
-
http_interactions:
|
3
|
-
- request:
|
4
|
-
method: get
|
5
|
-
uri: https://co1.qualtrics.com/API/v1/surveys?apiToken=6Wpo0Vsx1cN1kcHivCaGTz5IhOvchLrg1o4L0KOZ&scopeId=UR_3fnAz35QCGlr725
|
6
|
-
body:
|
7
|
-
encoding: US-ASCII
|
8
|
-
string: ''
|
9
|
-
headers:
|
10
|
-
User-Agent:
|
11
|
-
- Faraday v0.8.9
|
12
|
-
response:
|
13
|
-
status:
|
14
|
-
code: 200
|
15
|
-
message:
|
16
|
-
headers:
|
17
|
-
server:
|
18
|
-
- Apache-Coyote/1.1
|
19
|
-
content-type:
|
20
|
-
- application/json
|
21
|
-
content-length:
|
22
|
-
- '223'
|
23
|
-
date:
|
24
|
-
- Sun, 22 Mar 2015 21:05:58 GMT
|
25
|
-
connection:
|
26
|
-
- close
|
27
|
-
body:
|
28
|
-
encoding: UTF-8
|
29
|
-
string: '{"result":[{"id":"SV_djzgZ6eJXqnIUyF","name":"test_survey","ownerId":"UR_3fnAz35QCGlr725","lastModified":"2015-03-20
|
30
|
-
12:56:33","status":"Inactive"}],"meta":{"status":"Success","qualtricsErrorCode":null,"errorMessage":null}}'
|
31
|
-
http_version:
|
32
|
-
recorded_at: Sun, 22 Mar 2015 21:05:58 GMT
|
33
|
-
recorded_with: VCR 2.9.3
|