openstax_exchange 0.0.2 → 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.
- data/.gitignore +1 -0
- data/.ruby-version +1 -1
- data/.travis.yml +3 -1
- data/exchange-client.gemspec +1 -0
- data/lib/openstax/exchange/exchange.rb +4 -4
- data/lib/openstax/exchange/fake_client/fake_client.rb +11 -10
- data/lib/openstax/exchange/real_client/real_client.rb +14 -4
- data/lib/openstax/exchange/version.rb +1 -1
- data/spec/cassettes/OpenStax_Exchange_RealClient/behaves_like_exchange_client_api_v1/{_create_identifier → _create_identifiers}/success/creates_and_returns_a_new_identifier.yml +27 -20
- data/spec/cassettes/OpenStax_Exchange_RealClient/behaves_like_exchange_client_api_v1/{_create_identifier/success/creates_a_distinct_identifer_per_invokation.yml → _create_identifiers/success/creates_distinct_identifiers_per_invokation.yml} +42 -31
- data/spec/cassettes/OpenStax_Exchange_RealClient/behaves_like_exchange_client_api_v1/_record_multiple_choice_answer/duplicate_identifer_resource_trial_triplet/{raises_an_exception.yml → records_the_new_answer.yml} +44 -40
- data/spec/cassettes/OpenStax_Exchange_RealClient/behaves_like_exchange_client_api_v1/_record_multiple_choice_answer/invalid_resource_string/raises_an_exception.yml +40 -31
- data/spec/cassettes/OpenStax_Exchange_RealClient/behaves_like_exchange_client_api_v1/_record_multiple_choice_answer/success/allows_answers_with_distinct_identifiers_to_be_saved.yml +70 -55
- data/spec/cassettes/OpenStax_Exchange_RealClient/behaves_like_exchange_client_api_v1/_record_multiple_choice_answer/success/allows_answers_with_distinct_resources_to_be_saved.yml +55 -44
- data/spec/cassettes/OpenStax_Exchange_RealClient/behaves_like_exchange_client_api_v1/_record_multiple_choice_answer/success/allows_answers_with_distinct_trials_to_be_saved.yml +55 -44
- data/spec/cassettes/OpenStax_Exchange_RealClient/behaves_like_exchange_client_api_v1/_record_multiple_choice_answer/success/creates_a_multiple_choice_answer_associated_with_the_given_identifier.yml +41 -32
- data/spec/lib/openstax/exchange/shared_examples_for_exchange_client_v1.rb +40 -24
- metadata +26 -10
data/.gitignore
CHANGED
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
1.9.3-p545
|
data/.travis.yml
CHANGED
data/exchange-client.gemspec
CHANGED
@@ -27,11 +27,11 @@ module OpenStax
|
|
27
27
|
!!@use_real_client
|
28
28
|
end
|
29
29
|
|
30
|
-
def self.
|
30
|
+
def self.create_identifiers
|
31
31
|
begin
|
32
|
-
client.
|
32
|
+
client.create_identifiers
|
33
33
|
rescue StandardError => error
|
34
|
-
raise ClientError.new("
|
34
|
+
raise ClientError.new("create_identifiers failure", error)
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
@@ -62,4 +62,4 @@ module OpenStax
|
|
62
62
|
end
|
63
63
|
|
64
64
|
end
|
65
|
-
end
|
65
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'securerandom'
|
2
2
|
require 'uri'
|
3
|
+
require 'hashie'
|
3
4
|
|
4
5
|
module OpenStax
|
5
6
|
module Exchange
|
@@ -42,21 +43,21 @@ module OpenStax
|
|
42
43
|
@token
|
43
44
|
end
|
44
45
|
|
45
|
-
def
|
46
|
-
|
46
|
+
def create_identifiers
|
47
|
+
Hashie::Mash.new(
|
48
|
+
'read' => SecureRandom.hex(64),
|
49
|
+
'write' => SecureRandom.hex(64)
|
50
|
+
)
|
47
51
|
end
|
48
52
|
|
49
53
|
def record_multiple_choice_answer(identifier, resource, trial, answer)
|
54
|
+
host = URI(resource).host
|
55
|
+
raise "invalid resource" unless host =~ /openstax\.org\z|localhost\z/
|
56
|
+
|
50
57
|
@multiple_choice_responses[identifier] ||= {}
|
51
58
|
@multiple_choice_responses[identifier][resource] ||= {}
|
52
|
-
|
53
|
-
|
54
|
-
unless URI(resource).host == "exercises.openstax.org"
|
55
|
-
|
56
|
-
raise "duplicate response for (identifier,resource,trial) triplet" \
|
57
|
-
if @multiple_choice_responses[identifier][resource][trial]
|
58
|
-
|
59
|
-
@multiple_choice_responses[identifier][resource][trial] = answer
|
59
|
+
@multiple_choice_responses[identifier][resource][trial] ||= []
|
60
|
+
@multiple_choice_responses[identifier][resource][trial] << answer
|
60
61
|
|
61
62
|
return {
|
62
63
|
'identifier' => identifier,
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'oauth2'
|
2
|
+
require 'hashie'
|
2
3
|
|
3
4
|
module OpenStax
|
4
5
|
module Exchange
|
@@ -28,29 +29,33 @@ module OpenStax
|
|
28
29
|
@oauth_token.token
|
29
30
|
end
|
30
31
|
|
31
|
-
def
|
32
|
+
def create_identifiers
|
32
33
|
options = {}
|
33
34
|
add_accept_header! options
|
35
|
+
add_content_type_header! options
|
34
36
|
|
35
37
|
response = @oauth_token.request(
|
36
38
|
:post,
|
37
39
|
"#{@server_url}/api/identifiers",
|
38
|
-
options
|
40
|
+
options
|
41
|
+
)
|
39
42
|
|
40
|
-
return JSON.parse(response.body)
|
43
|
+
return Hashie::Mash.new(JSON.parse(response.body))
|
41
44
|
end
|
42
45
|
|
43
46
|
def record_multiple_choice_answer(identifier, resource, trial, answer)
|
44
47
|
options = {}
|
45
48
|
add_accept_header! options
|
46
49
|
add_authorization_header! options
|
50
|
+
add_content_type_header! options
|
47
51
|
|
48
52
|
options[:body] = { identifier: identifier, resource: resource, trial: trial, answer: answer }.to_json
|
49
53
|
|
50
54
|
response = @oauth_token.request(
|
51
55
|
:post,
|
52
56
|
"#{@server_url}/api/events/platforms/multiple_choices",
|
53
|
-
options
|
57
|
+
options
|
58
|
+
)
|
54
59
|
|
55
60
|
return JSON.parse(response.body)
|
56
61
|
end
|
@@ -70,6 +75,11 @@ module OpenStax
|
|
70
75
|
add_header_hash! options
|
71
76
|
options[:headers].merge!({ 'Authorization' => "Bearer #{token}" })
|
72
77
|
end
|
78
|
+
|
79
|
+
def add_content_type_header!(options)
|
80
|
+
add_header_hash! options
|
81
|
+
options[:headers].merge!({ 'Content-Type' => "application/json" })
|
82
|
+
end
|
73
83
|
end
|
74
84
|
|
75
85
|
end
|
@@ -4,15 +4,17 @@ http_interactions:
|
|
4
4
|
method: post
|
5
5
|
uri: http://123:abc@localhost:3003/oauth/token
|
6
6
|
body:
|
7
|
-
encoding:
|
7
|
+
encoding: UTF-8
|
8
8
|
string: grant_type=client_credentials
|
9
9
|
headers:
|
10
10
|
User-Agent:
|
11
|
-
- Faraday v0.9.
|
11
|
+
- Faraday v0.9.1
|
12
12
|
Content-Type:
|
13
13
|
- application/x-www-form-urlencoded
|
14
|
+
Accept-Encoding:
|
15
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
16
|
Accept:
|
15
|
-
-
|
17
|
+
- "*/*"
|
16
18
|
response:
|
17
19
|
status:
|
18
20
|
code: 200
|
@@ -31,35 +33,40 @@ http_interactions:
|
|
31
33
|
Content-Type:
|
32
34
|
- application/json; charset=utf-8
|
33
35
|
Etag:
|
34
|
-
- W/"
|
36
|
+
- W/"b8b7933dc19f52992aca234229e6ed19"
|
35
37
|
X-Request-Id:
|
36
|
-
-
|
38
|
+
- c7b06596-cef0-4675-a04b-76c8e27b63db
|
37
39
|
X-Runtime:
|
38
|
-
- '0.
|
40
|
+
- '0.018396'
|
39
41
|
Connection:
|
40
42
|
- close
|
41
43
|
Server:
|
42
44
|
- thin
|
43
45
|
body:
|
44
|
-
encoding:
|
45
|
-
string:
|
46
|
+
encoding: UTF-8
|
47
|
+
string: '{"access_token":"cecb9cf0b72448771be33bea9caa9aab1cb2b0d5f6488a010dcdd0218ab811b3","token_type":"bearer","scope":"read
|
48
|
+
write","created_at":1430246609}'
|
46
49
|
http_version:
|
47
|
-
recorded_at:
|
50
|
+
recorded_at: Tue, 28 Apr 2015 18:43:29 GMT
|
48
51
|
- request:
|
49
52
|
method: post
|
50
53
|
uri: http://localhost:3003/api/identifiers
|
51
54
|
body:
|
52
|
-
encoding:
|
55
|
+
encoding: UTF-8
|
53
56
|
string: ''
|
54
57
|
headers:
|
55
58
|
User-Agent:
|
56
|
-
- Faraday v0.9.
|
59
|
+
- Faraday v0.9.1
|
57
60
|
Accept:
|
58
61
|
- application/vnd.exchange.openstax.v1
|
62
|
+
Content-Type:
|
63
|
+
- application/json
|
59
64
|
Authorization:
|
60
|
-
- Bearer
|
65
|
+
- Bearer cecb9cf0b72448771be33bea9caa9aab1cb2b0d5f6488a010dcdd0218ab811b3
|
61
66
|
Content-Length:
|
62
67
|
- '0'
|
68
|
+
Accept-Encoding:
|
69
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
63
70
|
response:
|
64
71
|
status:
|
65
72
|
code: 201
|
@@ -71,27 +78,27 @@ http_interactions:
|
|
71
78
|
- 1; mode=block
|
72
79
|
X-Content-Type-Options:
|
73
80
|
- nosniff
|
81
|
+
Date:
|
82
|
+
- Tue, 28 Apr 2015 18:43:29 GMT
|
74
83
|
Content-Type:
|
75
84
|
- application/json; charset=utf-8
|
76
85
|
Etag:
|
77
|
-
- W/"
|
86
|
+
- W/"418c0e720814d0c848ca1af5ff6076b7"
|
78
87
|
Cache-Control:
|
79
88
|
- max-age=0, private, must-revalidate
|
80
89
|
Set-Cookie:
|
81
|
-
- _exercises_session=TnZoWHNTaWdjZmJJUXg2VHdOdERvcTA5a2R6WURqQkJub1FMYlZYdEpKZ3hCQjJiekx2ZVdDL2ZBcWMwOW53Y3lFVHYzWHJYTFlhdW02MUVKMXdZY2c9PS0tQ1VnN1EzSmxad1BjY1d5UVNHR29xdz09--e0ce290be622c8641bdc4072f45e8f23b596a233;
|
82
|
-
path=/; HttpOnly
|
83
90
|
- request_method=POST; path=/
|
84
91
|
X-Request-Id:
|
85
|
-
-
|
92
|
+
- eb06ece6-3591-43c7-a668-3dabdb54be9b
|
86
93
|
X-Runtime:
|
87
|
-
- '0.
|
94
|
+
- '0.066011'
|
88
95
|
Connection:
|
89
96
|
- close
|
90
97
|
Server:
|
91
98
|
- thin
|
92
99
|
body:
|
93
|
-
encoding:
|
94
|
-
string:
|
100
|
+
encoding: UTF-8
|
101
|
+
string: '{"read":"2f29e60deb4d57a2ffd61445bae1d16cf872a36e54261aca523afce49368b8fc","write":"2fcae26ba766d07e9567b975be1847af6e26e62f92d525cf4667d152cba10606"}'
|
95
102
|
http_version:
|
96
|
-
recorded_at:
|
103
|
+
recorded_at: Tue, 28 Apr 2015 18:43:29 GMT
|
97
104
|
recorded_with: VCR 2.9.3
|
@@ -4,15 +4,17 @@ http_interactions:
|
|
4
4
|
method: post
|
5
5
|
uri: http://123:abc@localhost:3003/oauth/token
|
6
6
|
body:
|
7
|
-
encoding:
|
7
|
+
encoding: UTF-8
|
8
8
|
string: grant_type=client_credentials
|
9
9
|
headers:
|
10
10
|
User-Agent:
|
11
|
-
- Faraday v0.9.
|
11
|
+
- Faraday v0.9.1
|
12
12
|
Content-Type:
|
13
13
|
- application/x-www-form-urlencoded
|
14
|
+
Accept-Encoding:
|
15
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
16
|
Accept:
|
15
|
-
-
|
17
|
+
- "*/*"
|
16
18
|
response:
|
17
19
|
status:
|
18
20
|
code: 200
|
@@ -31,35 +33,40 @@ http_interactions:
|
|
31
33
|
Content-Type:
|
32
34
|
- application/json; charset=utf-8
|
33
35
|
Etag:
|
34
|
-
- W/"
|
36
|
+
- W/"cca56781b51226d52e6540d9b764f26e"
|
35
37
|
X-Request-Id:
|
36
|
-
-
|
38
|
+
- 05afba0e-565e-4f47-ac73-bbaf3ffe9fd3
|
37
39
|
X-Runtime:
|
38
|
-
- '0.
|
40
|
+
- '0.016329'
|
39
41
|
Connection:
|
40
42
|
- close
|
41
43
|
Server:
|
42
44
|
- thin
|
43
45
|
body:
|
44
|
-
encoding:
|
45
|
-
string:
|
46
|
+
encoding: UTF-8
|
47
|
+
string: '{"access_token":"bc4c6dec5fb886a92feb3cb703a4169a828b78c98a2f06704dddb77b91b72d70","token_type":"bearer","scope":"read
|
48
|
+
write","created_at":1430246609}'
|
46
49
|
http_version:
|
47
|
-
recorded_at:
|
50
|
+
recorded_at: Tue, 28 Apr 2015 18:43:29 GMT
|
48
51
|
- request:
|
49
52
|
method: post
|
50
53
|
uri: http://localhost:3003/api/identifiers
|
51
54
|
body:
|
52
|
-
encoding:
|
55
|
+
encoding: UTF-8
|
53
56
|
string: ''
|
54
57
|
headers:
|
55
58
|
User-Agent:
|
56
|
-
- Faraday v0.9.
|
59
|
+
- Faraday v0.9.1
|
57
60
|
Accept:
|
58
61
|
- application/vnd.exchange.openstax.v1
|
62
|
+
Content-Type:
|
63
|
+
- application/json
|
59
64
|
Authorization:
|
60
|
-
- Bearer
|
65
|
+
- Bearer bc4c6dec5fb886a92feb3cb703a4169a828b78c98a2f06704dddb77b91b72d70
|
61
66
|
Content-Length:
|
62
67
|
- '0'
|
68
|
+
Accept-Encoding:
|
69
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
63
70
|
response:
|
64
71
|
status:
|
65
72
|
code: 201
|
@@ -71,44 +78,48 @@ http_interactions:
|
|
71
78
|
- 1; mode=block
|
72
79
|
X-Content-Type-Options:
|
73
80
|
- nosniff
|
81
|
+
Date:
|
82
|
+
- Tue, 28 Apr 2015 18:43:29 GMT
|
74
83
|
Content-Type:
|
75
84
|
- application/json; charset=utf-8
|
76
85
|
Etag:
|
77
|
-
- W/"
|
86
|
+
- W/"10c4bbcd785346bcbb20bc277bb8d34e"
|
78
87
|
Cache-Control:
|
79
88
|
- max-age=0, private, must-revalidate
|
80
89
|
Set-Cookie:
|
81
|
-
- _exercises_session=c0cyWnNJeUZSUVQ1MVJ6QUdYUjJKakNSbFRweFQwdnovVms3dm42dDRqMFdSSTJwM2dVTU5GelFPNjhSRXdRVkQxYUlNN0Jpek5Nd2RtenlkNUV0VlE9PS0tdkxMWVV4dUgvVFd3YzFTZzJkNUFXQT09--10f51958af22134ccfe27073cd381c0faf434a35;
|
82
|
-
path=/; HttpOnly
|
83
90
|
- request_method=POST; path=/
|
84
91
|
X-Request-Id:
|
85
|
-
-
|
92
|
+
- 57673f24-faab-4a70-ad84-271d78ef9e05
|
86
93
|
X-Runtime:
|
87
|
-
- '0.
|
94
|
+
- '0.058148'
|
88
95
|
Connection:
|
89
96
|
- close
|
90
97
|
Server:
|
91
98
|
- thin
|
92
99
|
body:
|
93
|
-
encoding:
|
94
|
-
string:
|
100
|
+
encoding: UTF-8
|
101
|
+
string: '{"read":"e6bf61fd03a73703c80dda9b7080d6d6c8158c2bc189ab3943d0bde3950073b7","write":"751996e258c37c2a30e26ddf148180369012c5f6fa99b14101b3adb93ad05f29"}'
|
95
102
|
http_version:
|
96
|
-
recorded_at:
|
103
|
+
recorded_at: Tue, 28 Apr 2015 18:43:29 GMT
|
97
104
|
- request:
|
98
105
|
method: post
|
99
106
|
uri: http://localhost:3003/api/identifiers
|
100
107
|
body:
|
101
|
-
encoding:
|
108
|
+
encoding: UTF-8
|
102
109
|
string: ''
|
103
110
|
headers:
|
104
111
|
User-Agent:
|
105
|
-
- Faraday v0.9.
|
112
|
+
- Faraday v0.9.1
|
106
113
|
Accept:
|
107
114
|
- application/vnd.exchange.openstax.v1
|
115
|
+
Content-Type:
|
116
|
+
- application/json
|
108
117
|
Authorization:
|
109
|
-
- Bearer
|
118
|
+
- Bearer bc4c6dec5fb886a92feb3cb703a4169a828b78c98a2f06704dddb77b91b72d70
|
110
119
|
Content-Length:
|
111
120
|
- '0'
|
121
|
+
Accept-Encoding:
|
122
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
112
123
|
response:
|
113
124
|
status:
|
114
125
|
code: 201
|
@@ -120,27 +131,27 @@ http_interactions:
|
|
120
131
|
- 1; mode=block
|
121
132
|
X-Content-Type-Options:
|
122
133
|
- nosniff
|
134
|
+
Date:
|
135
|
+
- Tue, 28 Apr 2015 18:43:29 GMT
|
123
136
|
Content-Type:
|
124
137
|
- application/json; charset=utf-8
|
125
138
|
Etag:
|
126
|
-
- W/"
|
139
|
+
- W/"a191e6d531a6a3182aa2ea236db51f24"
|
127
140
|
Cache-Control:
|
128
141
|
- max-age=0, private, must-revalidate
|
129
142
|
Set-Cookie:
|
130
|
-
- _exercises_session=LzR6d09ZRE1CUjZlR2Jac1FpMlkzeDl2VWFNYTJyQ1NGeGkxWjRxVHdVS095ckpwUFZMcytxUFByOXVJOHoxUFR1d3ozSzNycFBYYVUrOEY3TVU3eVE9PS0tb29QaldpV2lkaWZEZHlRblZjQVBjdz09--c93e2fa442d933cb679336585b1670ebf60fdb09;
|
131
|
-
path=/; HttpOnly
|
132
143
|
- request_method=POST; path=/
|
133
144
|
X-Request-Id:
|
134
|
-
-
|
145
|
+
- 515dfba0-d765-4394-a479-644880f18d8b
|
135
146
|
X-Runtime:
|
136
|
-
- '0.
|
147
|
+
- '0.055219'
|
137
148
|
Connection:
|
138
149
|
- close
|
139
150
|
Server:
|
140
151
|
- thin
|
141
152
|
body:
|
142
|
-
encoding:
|
143
|
-
string:
|
153
|
+
encoding: UTF-8
|
154
|
+
string: '{"read":"e6068fd59348d50507069636673b611a278ebf7b3372c4c693e2e2833ab19fa1","write":"a3beadfaaeff88078fd190adfc9ea0d774e94ffeb5e8fadf75c29b27fe6836d4"}'
|
144
155
|
http_version:
|
145
|
-
recorded_at:
|
156
|
+
recorded_at: Tue, 28 Apr 2015 18:43:29 GMT
|
146
157
|
recorded_with: VCR 2.9.3
|
@@ -8,7 +8,7 @@ http_interactions:
|
|
8
8
|
string: grant_type=client_credentials
|
9
9
|
headers:
|
10
10
|
User-Agent:
|
11
|
-
- Faraday v0.9.
|
11
|
+
- Faraday v0.9.1
|
12
12
|
Content-Type:
|
13
13
|
- application/x-www-form-urlencoded
|
14
14
|
Accept:
|
@@ -31,20 +31,21 @@ http_interactions:
|
|
31
31
|
Content-Type:
|
32
32
|
- application/json; charset=utf-8
|
33
33
|
Etag:
|
34
|
-
- W/"
|
34
|
+
- W/"e3d0e550ef1d47dc2d40b7d70e16eecf"
|
35
35
|
X-Request-Id:
|
36
|
-
-
|
36
|
+
- fa9d9559-e16e-4318-b447-c24b8cc531b1
|
37
37
|
X-Runtime:
|
38
|
-
- '0.
|
38
|
+
- '0.066830'
|
39
39
|
Connection:
|
40
40
|
- close
|
41
41
|
Server:
|
42
42
|
- thin
|
43
43
|
body:
|
44
44
|
encoding: US-ASCII
|
45
|
-
string: ! '{"access_token":"
|
45
|
+
string: ! '{"access_token":"177f3b0e42f693caee3761c653a0060104dea5afcc9cbad292e64b563c6e5296","token_type":"bearer","scope":"read
|
46
|
+
write","created_at":1430418522}'
|
46
47
|
http_version:
|
47
|
-
recorded_at:
|
48
|
+
recorded_at: Thu, 30 Apr 2015 18:28:42 GMT
|
48
49
|
- request:
|
49
50
|
method: post
|
50
51
|
uri: http://localhost:3003/api/identifiers
|
@@ -53,11 +54,13 @@ http_interactions:
|
|
53
54
|
string: ''
|
54
55
|
headers:
|
55
56
|
User-Agent:
|
56
|
-
- Faraday v0.9.
|
57
|
+
- Faraday v0.9.1
|
57
58
|
Accept:
|
58
59
|
- application/vnd.exchange.openstax.v1
|
60
|
+
Content-Type:
|
61
|
+
- application/json
|
59
62
|
Authorization:
|
60
|
-
- Bearer
|
63
|
+
- Bearer 177f3b0e42f693caee3761c653a0060104dea5afcc9cbad292e64b563c6e5296
|
61
64
|
Content-Length:
|
62
65
|
- '0'
|
63
66
|
response:
|
@@ -71,44 +74,44 @@ http_interactions:
|
|
71
74
|
- 1; mode=block
|
72
75
|
X-Content-Type-Options:
|
73
76
|
- nosniff
|
77
|
+
Date:
|
78
|
+
- Thu, 30 Apr 2015 18:28:42 GMT
|
74
79
|
Content-Type:
|
75
80
|
- application/json; charset=utf-8
|
76
81
|
Etag:
|
77
|
-
- W/"
|
82
|
+
- W/"6d084a5cad37e1c244bdb5c111ab968a"
|
78
83
|
Cache-Control:
|
79
84
|
- max-age=0, private, must-revalidate
|
80
85
|
Set-Cookie:
|
81
|
-
- _exercises_session=WU1KU0h4VjlkaUMzdU01M1pwME5pLzVROG1QaHFGbnR0bzlKVXp4aE5HNm5wOG1oQW83QVdZZm1lUS9YT0JOUDVJbGFrMWxlakdTc243Tk4vdHBSL2c9PS0teW8xOVhVYTE0TTlETzdCcWhpek1RZz09--b92be7656418e43b4f27c7e83f4f5cac1b955a64;
|
82
|
-
path=/; HttpOnly
|
83
86
|
- request_method=POST; path=/
|
84
87
|
X-Request-Id:
|
85
|
-
-
|
88
|
+
- 05ef7ac8-aa39-40f5-8a95-d769dfc28170
|
86
89
|
X-Runtime:
|
87
|
-
- '0.
|
90
|
+
- '0.169319'
|
88
91
|
Connection:
|
89
92
|
- close
|
90
93
|
Server:
|
91
94
|
- thin
|
92
95
|
body:
|
93
96
|
encoding: US-ASCII
|
94
|
-
string: ! '{"
|
97
|
+
string: ! '{"read":"9dc1b20bb40a6e3f40a33405a0089ffb6fdd3b34f338eda3595da8a0df88d512","write":"2a3c4952254d5cd231df4971af97f71337c714085d30237020dba34b073fa1fa"}'
|
95
98
|
http_version:
|
96
|
-
recorded_at:
|
99
|
+
recorded_at: Thu, 30 Apr 2015 18:28:42 GMT
|
97
100
|
- request:
|
98
101
|
method: post
|
99
102
|
uri: http://localhost:3003/api/events/platforms/multiple_choices
|
100
103
|
body:
|
101
104
|
encoding: UTF-8
|
102
|
-
string: ! '{"identifier":"
|
105
|
+
string: ! '{"identifier":"2a3c4952254d5cd231df4971af97f71337c714085d30237020dba34b073fa1fa","resource":"https://exercises-dev1.openstax.org/api/exercises/123@1","trial":"1","answer":"answer_string"}'
|
103
106
|
headers:
|
104
107
|
User-Agent:
|
105
|
-
- Faraday v0.9.
|
108
|
+
- Faraday v0.9.1
|
106
109
|
Accept:
|
107
110
|
- application/vnd.exchange.openstax.v1
|
108
111
|
Authorization:
|
109
|
-
- Bearer
|
112
|
+
- Bearer 177f3b0e42f693caee3761c653a0060104dea5afcc9cbad292e64b563c6e5296
|
110
113
|
Content-Type:
|
111
|
-
- application/
|
114
|
+
- application/json
|
112
115
|
response:
|
113
116
|
status:
|
114
117
|
code: 201
|
@@ -120,48 +123,48 @@ http_interactions:
|
|
120
123
|
- 1; mode=block
|
121
124
|
X-Content-Type-Options:
|
122
125
|
- nosniff
|
126
|
+
Date:
|
127
|
+
- Thu, 30 Apr 2015 18:28:43 GMT
|
123
128
|
Content-Type:
|
124
129
|
- application/json; charset=utf-8
|
125
130
|
Etag:
|
126
|
-
- W/"
|
131
|
+
- W/"af86414af7354a54579425ee3702b3ef"
|
127
132
|
Cache-Control:
|
128
133
|
- max-age=0, private, must-revalidate
|
129
134
|
Set-Cookie:
|
130
|
-
- _exercises_session=YzVmZC9xY01WMnV5R0NTN2VyVXRJN1o3MkFibERUbkdGMitTK2VoNC9qeDVqSTJUY3JIdjRJUk9SM1gzdFZoalcyb3I0TTZVWWJ4SmhnUHBxWkxQS2c9PS0ta0NMM1ZpaDg4aWVTalpIMjRYcFdWUT09--fe66330b75140d7a608e3a93e92ed346ea94a214;
|
131
|
-
path=/; HttpOnly
|
132
135
|
- request_method=POST; path=/
|
133
136
|
X-Request-Id:
|
134
|
-
-
|
137
|
+
- 9cff5834-d1f1-4b2e-bf04-c8614e857f5f
|
135
138
|
X-Runtime:
|
136
|
-
- '0.
|
139
|
+
- '0.274154'
|
137
140
|
Connection:
|
138
141
|
- close
|
139
142
|
Server:
|
140
143
|
- thin
|
141
144
|
body:
|
142
145
|
encoding: US-ASCII
|
143
|
-
string: ! '{"identifier":"
|
146
|
+
string: ! '{"identifier":"2a3c4952254d5cd231df4971af97f71337c714085d30237020dba34b073fa1fa","resource":"https://exercises-dev1.openstax.org/api/exercises/123@1","trial":"1","created_at":"2015-04-30T18:28:43.123Z","answer_type":"multiple-choice","answer":"answer_string"}'
|
144
147
|
http_version:
|
145
|
-
recorded_at:
|
148
|
+
recorded_at: Thu, 30 Apr 2015 18:28:43 GMT
|
146
149
|
- request:
|
147
150
|
method: post
|
148
151
|
uri: http://localhost:3003/api/events/platforms/multiple_choices
|
149
152
|
body:
|
150
153
|
encoding: UTF-8
|
151
|
-
string: ! '{"identifier":"
|
154
|
+
string: ! '{"identifier":"2a3c4952254d5cd231df4971af97f71337c714085d30237020dba34b073fa1fa","resource":"https://exercises-dev1.openstax.org/api/exercises/123@1","trial":"1","answer":"another_string"}'
|
152
155
|
headers:
|
153
156
|
User-Agent:
|
154
|
-
- Faraday v0.9.
|
157
|
+
- Faraday v0.9.1
|
155
158
|
Accept:
|
156
159
|
- application/vnd.exchange.openstax.v1
|
157
160
|
Authorization:
|
158
|
-
- Bearer
|
161
|
+
- Bearer 177f3b0e42f693caee3761c653a0060104dea5afcc9cbad292e64b563c6e5296
|
159
162
|
Content-Type:
|
160
|
-
- application/
|
163
|
+
- application/json
|
161
164
|
response:
|
162
165
|
status:
|
163
|
-
code:
|
164
|
-
message:
|
166
|
+
code: 201
|
167
|
+
message: Created
|
165
168
|
headers:
|
166
169
|
X-Frame-Options:
|
167
170
|
- SAMEORIGIN
|
@@ -169,26 +172,27 @@ http_interactions:
|
|
169
172
|
- 1; mode=block
|
170
173
|
X-Content-Type-Options:
|
171
174
|
- nosniff
|
175
|
+
Date:
|
176
|
+
- Thu, 30 Apr 2015 18:28:43 GMT
|
172
177
|
Content-Type:
|
173
178
|
- application/json; charset=utf-8
|
179
|
+
Etag:
|
180
|
+
- W/"7d5dc201a376c1a0764d6fa9252738af"
|
174
181
|
Cache-Control:
|
175
|
-
-
|
182
|
+
- max-age=0, private, must-revalidate
|
176
183
|
Set-Cookie:
|
177
|
-
- _exercises_session=MmlzQS9IZVEzNW1LN1pOTzNsSXFMVkIrVnRLaEJzaTRsNjl6MEI1ZmxWQXlkWnBBOWsvTUxGMjV6U2RLMFlPb2xlMnM2S3FKTjkyb0hJNEtaUTFUY3c9PS0tTFdFVEdRbUEweEluZWU1MjZEYkhqQT09--d606058ac3ab90d11d80a174fe0ff3700c986759;
|
178
|
-
path=/; HttpOnly
|
179
184
|
- request_method=POST; path=/
|
180
185
|
X-Request-Id:
|
181
|
-
-
|
186
|
+
- 42174994-50fc-46a3-a04b-302385f05e80
|
182
187
|
X-Runtime:
|
183
|
-
- '0.
|
188
|
+
- '0.075426'
|
184
189
|
Connection:
|
185
190
|
- close
|
186
191
|
Server:
|
187
192
|
- thin
|
188
193
|
body:
|
189
194
|
encoding: US-ASCII
|
190
|
-
string: ! '
|
191
|
-
already been taken","offending_inputs":"trial"}]'
|
195
|
+
string: ! '{"identifier":"2a3c4952254d5cd231df4971af97f71337c714085d30237020dba34b073fa1fa","resource":"https://exercises-dev1.openstax.org/api/exercises/123@1","trial":"1","created_at":"2015-04-30T18:28:43.276Z","answer_type":"multiple-choice","answer":"another_string"}'
|
192
196
|
http_version:
|
193
|
-
recorded_at:
|
197
|
+
recorded_at: Thu, 30 Apr 2015 18:28:43 GMT
|
194
198
|
recorded_with: VCR 2.9.3
|