openstax_exchange 0.0.2 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|