scorm_engine 0.6.3 → 0.6.4
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/lib/scorm_engine/api/endpoints.rb +28 -6
- data/lib/scorm_engine/api/endpoints/courses/import.rb +17 -5
- data/lib/scorm_engine/models/registration_runtime_interaction.rb +1 -1
- data/lib/scorm_engine/version.rb +1 -1
- data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Import/_get_course_import/successful_imports/works.yml +59 -32
- data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Import/_get_course_import/unsuccessful_imports/fails_to_import_given_an_invalid_url.yml +49 -20
- data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Import/_post_course_import/successful_imports/works_with_a_pathname.yml +41 -0
- data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Import/_post_course_import/successful_imports/{works.yml → works_with_a_url.yml} +9 -9
- data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Import/_post_course_import/unsuccessful_imports/fails_to_import_a_previously_existing_course.yml +6 -6
- data/spec/scorm_engine/api/endpoints/courses/import_spec.rb +19 -4
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a828b4c9aa75bf10b9fc11da7bdb3b736a86dde21d37fdd50d81b5cf283f377a
|
4
|
+
data.tar.gz: f4641ea80c941a4762c8e568f2633a68444a1430e066dc5f019a421b2c0a6a2f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 199781c9673f5d770df86a4973c4e2ddc0761e8df54f3c3b405825c78df43212a91b255e8a744435cddcda567077c626ca2a841c16b04b01c197af021cd2716a
|
7
|
+
data.tar.gz: ae09f2084bb6954fd0a4f7d37f695b6ec3e096eac91595cb1c9a1f434080224a4c45b8af80445748a450fe3e6aa2909092ab376a7ed11e81bfe0b71430960a3c
|
@@ -26,14 +26,16 @@ module ScormEngine
|
|
26
26
|
private
|
27
27
|
|
28
28
|
#
|
29
|
-
# Ensure that all of the keys are present in the hash passed and raise an
|
29
|
+
# Ensure that all of the keys are present in the hash passed and raise an
|
30
|
+
# error if not.
|
30
31
|
#
|
31
32
|
# @example
|
32
33
|
# require_options({foo: 1, bar: {"baz" => 2}}, :foo, [:bar, :baz], :moo)
|
33
34
|
# # will raise an errror due to lack of :moo
|
34
35
|
#
|
35
36
|
# @param [Hash] haystack
|
36
|
-
# The option hash in which to search for the given, optionally nested,
|
37
|
+
# The option hash in which to search for the given, optionally nested,
|
38
|
+
# key[s].
|
37
39
|
#
|
38
40
|
# @param [Array] sets_of_needles
|
39
41
|
# A splat of keys or array of nested keys to search for.
|
@@ -41,13 +43,33 @@ module ScormEngine
|
|
41
43
|
# @raise [ArgumentError] if any needle isn't found.
|
42
44
|
#
|
43
45
|
def require_options(haystack = {}, *sets_of_needles)
|
44
|
-
sets_of_needles.each { |needles| require_option(haystack, *needles) }
|
46
|
+
sets_of_needles.each { |needles| require_option(haystack, true, *needles) }
|
45
47
|
end
|
46
48
|
|
47
|
-
|
49
|
+
#
|
50
|
+
# Ensure that exactly one of the keys are present in the hash passed and
|
51
|
+
# raise an error if not.
|
52
|
+
#
|
53
|
+
# @param [Hash] haystack
|
54
|
+
# The option hash in which to search for the given, optionally nested,
|
55
|
+
# key[s].
|
56
|
+
#
|
57
|
+
# @param [Array] sets_of_needles
|
58
|
+
# A splat of keys or array of nested keys to search for.
|
59
|
+
#
|
60
|
+
# @raise [ArgumentError] if zero or more than one key is found.
|
61
|
+
#
|
62
|
+
def require_exclusive_option(haystack = {}, *sets_of_needles)
|
63
|
+
options_set = sets_of_needles.map { |needles| require_option(haystack, false, *needles) ? needles : nil }.compact
|
64
|
+
return true if options_set.one?
|
65
|
+
raise(ArgumentError, "Exclusive option required. One of: #{sets_of_needles.map { |n| Array(n).join("/") }.join(", ")}")
|
66
|
+
end
|
67
|
+
|
68
|
+
def require_option(haystack, raise_error, *needles)
|
48
69
|
value = needles.reduce(haystack) { |m, o| value_for_key(m, o) }
|
49
|
-
return unless value.nil?
|
50
|
-
raise
|
70
|
+
return true unless value.nil?
|
71
|
+
raise(ArgumentError, "Required option #{needles.join("/")} missing") if raise_error
|
72
|
+
false
|
51
73
|
end
|
52
74
|
|
53
75
|
def value_for_key(memo, obj)
|
@@ -14,15 +14,21 @@ module ScormEngine
|
|
14
14
|
#
|
15
15
|
# @param [Hash] options
|
16
16
|
#
|
17
|
-
# @option options [String] :url
|
18
|
-
# URL path to the .zip package representing the course or the manifest file defining the course.
|
19
|
-
#
|
20
17
|
# @option options [String] :course_id
|
21
18
|
# A unique identifier your application will use to identify the
|
22
19
|
# course after import. Your application is responsible both for
|
23
20
|
# generating this unique ID and for keeping track of the ID for later
|
24
21
|
# use.
|
25
22
|
#
|
23
|
+
# @option options [String] :url
|
24
|
+
# URL path to the .zip package representing the course or the
|
25
|
+
# manifest file defining the course. Mutually exclusive with
|
26
|
+
# :pathname.
|
27
|
+
#
|
28
|
+
# @option options [String] :pathname
|
29
|
+
# Local file path to the .zip package representing the course.
|
30
|
+
# Mutually exclusive with :url.
|
31
|
+
#
|
26
32
|
# @option options [Boolean] :may_create_new_version (false)
|
27
33
|
# Is it OK to create a new version of this course? If this is set to
|
28
34
|
# false and the course already exists, the upload will fail. If true
|
@@ -35,7 +41,8 @@ module ScormEngine
|
|
35
41
|
# @return [ScormEngine::Models::CourseImport]
|
36
42
|
#
|
37
43
|
def post_course_import(options = {})
|
38
|
-
require_options(options, :course_id
|
44
|
+
require_options(options, :course_id)
|
45
|
+
require_exclusive_option(options, :url, :pathname)
|
39
46
|
|
40
47
|
query_params = {
|
41
48
|
course: options[:course_id],
|
@@ -43,10 +50,15 @@ module ScormEngine
|
|
43
50
|
}
|
44
51
|
|
45
52
|
body = {
|
46
|
-
url: options[:url],
|
47
53
|
courseName: options[:name] || options[:course_id]
|
48
54
|
}
|
49
55
|
|
56
|
+
body[:url] = if options[:url]
|
57
|
+
options[:url]
|
58
|
+
elsif options[:pathname]
|
59
|
+
::Faraday::UploadIO.new(options[:pathname], "application/zip")
|
60
|
+
end
|
61
|
+
|
50
62
|
response = post("courses/importJobs", query_params, body)
|
51
63
|
|
52
64
|
result = response&.success? ? ScormEngine::Models::CourseImport.new_from_api(response.body) : nil
|
data/lib/scorm_engine/version.rb
CHANGED
@@ -5,14 +5,14 @@ http_interactions:
|
|
5
5
|
uri: https://<SCORM_ENGINE_HOST>/ScormEngineInterface/api/v1/ScormEngineGemTesting-default/courses/importJobs?course=a-valid-course-url&mayCreateNewVersion=true
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
|
-
string: '{"url":"https://github.com/phallstrom/scorm_engine/raw/master/spec/fixtures/zip/RuntimeBasicCalls_SCORM20043rdEdition.zip"
|
8
|
+
string: '{"courseName":"a-valid-course-url","url":"https://github.com/phallstrom/scorm_engine/raw/master/spec/fixtures/zip/RuntimeBasicCalls_SCORM20043rdEdition.zip"}'
|
9
9
|
headers:
|
10
|
-
Content-Type:
|
11
|
-
- application/json
|
12
10
|
User-Agent:
|
13
|
-
- ScormEngine Ruby Gem 0.
|
11
|
+
- ScormEngine Ruby Gem 0.6.3
|
14
12
|
Authorization:
|
15
13
|
- Basic <BASIC_AUTH>
|
14
|
+
Content-Type:
|
15
|
+
- application/json
|
16
16
|
response:
|
17
17
|
status:
|
18
18
|
code: 200
|
@@ -21,7 +21,7 @@ http_interactions:
|
|
21
21
|
content-type:
|
22
22
|
- application/json
|
23
23
|
date:
|
24
|
-
-
|
24
|
+
- Mon, 10 Sep 2018 17:29:02 GMT
|
25
25
|
server:
|
26
26
|
- nginx
|
27
27
|
vary:
|
@@ -32,20 +32,18 @@ http_interactions:
|
|
32
32
|
- Close
|
33
33
|
body:
|
34
34
|
encoding: ASCII-8BIT
|
35
|
-
string: '{"result":"
|
35
|
+
string: '{"result":"08e0a9a6-86b0-4b19-9e23-46d825a4c114","importResult":{"status":"RUNNING","parserWarnings":[],"courseLanguages":[]}}'
|
36
36
|
http_version:
|
37
|
-
recorded_at:
|
37
|
+
recorded_at: Mon, 10 Sep 2018 17:29:02 GMT
|
38
38
|
- request:
|
39
39
|
method: get
|
40
|
-
uri: https://<SCORM_ENGINE_HOST>/ScormEngineInterface/api/v1/ScormEngineGemTesting-default/courses/importJobs/
|
40
|
+
uri: https://<SCORM_ENGINE_HOST>/ScormEngineInterface/api/v1/ScormEngineGemTesting-default/courses/importJobs/08e0a9a6-86b0-4b19-9e23-46d825a4c114
|
41
41
|
body:
|
42
42
|
encoding: US-ASCII
|
43
43
|
string: ''
|
44
44
|
headers:
|
45
|
-
Content-Type:
|
46
|
-
- application/json
|
47
45
|
User-Agent:
|
48
|
-
- ScormEngine Ruby Gem 0.
|
46
|
+
- ScormEngine Ruby Gem 0.6.3
|
49
47
|
Authorization:
|
50
48
|
- Basic <BASIC_AUTH>
|
51
49
|
response:
|
@@ -56,7 +54,7 @@ http_interactions:
|
|
56
54
|
content-type:
|
57
55
|
- application/json
|
58
56
|
date:
|
59
|
-
-
|
57
|
+
- Mon, 10 Sep 2018 17:29:02 GMT
|
60
58
|
server:
|
61
59
|
- nginx
|
62
60
|
vary:
|
@@ -69,18 +67,16 @@ http_interactions:
|
|
69
67
|
encoding: ASCII-8BIT
|
70
68
|
string: '{"status":"RUNNING","parserWarnings":[],"courseLanguages":[]}'
|
71
69
|
http_version:
|
72
|
-
recorded_at:
|
70
|
+
recorded_at: Mon, 10 Sep 2018 17:29:02 GMT
|
73
71
|
- request:
|
74
72
|
method: get
|
75
|
-
uri: https://<SCORM_ENGINE_HOST>/ScormEngineInterface/api/v1/ScormEngineGemTesting-default/courses/importJobs/
|
73
|
+
uri: https://<SCORM_ENGINE_HOST>/ScormEngineInterface/api/v1/ScormEngineGemTesting-default/courses/importJobs/08e0a9a6-86b0-4b19-9e23-46d825a4c114
|
76
74
|
body:
|
77
75
|
encoding: US-ASCII
|
78
76
|
string: ''
|
79
77
|
headers:
|
80
|
-
Content-Type:
|
81
|
-
- application/json
|
82
78
|
User-Agent:
|
83
|
-
- ScormEngine Ruby Gem 0.
|
79
|
+
- ScormEngine Ruby Gem 0.6.3
|
84
80
|
Authorization:
|
85
81
|
- Basic <BASIC_AUTH>
|
86
82
|
response:
|
@@ -91,33 +87,64 @@ http_interactions:
|
|
91
87
|
content-type:
|
92
88
|
- application/json
|
93
89
|
date:
|
94
|
-
-
|
90
|
+
- Mon, 10 Sep 2018 17:29:08 GMT
|
95
91
|
server:
|
96
92
|
- nginx
|
97
93
|
vary:
|
98
94
|
- Accept-Encoding
|
99
95
|
content-length:
|
100
|
-
- '
|
96
|
+
- '75'
|
101
97
|
connection:
|
102
98
|
- Close
|
103
99
|
body:
|
104
100
|
encoding: ASCII-8BIT
|
105
|
-
string: '{"
|
106
|
-
Successful","courseTitle":"Golf Explained - Run-time Basic Calls - NEW VERSION","webPathToCourse":"/courses/ScormEngineGemTesting-default/a-valid-course-url/1","parserWarnings":[],"courseLanguages":[],"course":{"id":"a-valid-course-url","version":1,"title":"Golf
|
107
|
-
Explained - Run-time Basic Calls","courseLearningStandard":"SCORM_2004_3RD_EDITION","registrationCount":0,"updated":"2018-07-24T20:36:51.197Z"}}'
|
101
|
+
string: '{"status":"RUNNING","parserWarnings":[],"courseLanguages":[]}'
|
108
102
|
http_version:
|
109
|
-
recorded_at:
|
103
|
+
recorded_at: Mon, 10 Sep 2018 17:29:08 GMT
|
110
104
|
- request:
|
111
105
|
method: get
|
112
|
-
uri: https://<SCORM_ENGINE_HOST>/ScormEngineInterface/api/v1/ScormEngineGemTesting-default/courses/importJobs/
|
106
|
+
uri: https://<SCORM_ENGINE_HOST>/ScormEngineInterface/api/v1/ScormEngineGemTesting-default/courses/importJobs/08e0a9a6-86b0-4b19-9e23-46d825a4c114
|
113
107
|
body:
|
114
108
|
encoding: US-ASCII
|
115
109
|
string: ''
|
116
110
|
headers:
|
117
|
-
|
111
|
+
User-Agent:
|
112
|
+
- ScormEngine Ruby Gem 0.6.3
|
113
|
+
Authorization:
|
114
|
+
- Basic <BASIC_AUTH>
|
115
|
+
response:
|
116
|
+
status:
|
117
|
+
code: 200
|
118
|
+
message: ''
|
119
|
+
headers:
|
120
|
+
content-type:
|
118
121
|
- application/json
|
122
|
+
date:
|
123
|
+
- Mon, 10 Sep 2018 17:29:13 GMT
|
124
|
+
server:
|
125
|
+
- nginx
|
126
|
+
vary:
|
127
|
+
- Accept-Encoding
|
128
|
+
content-length:
|
129
|
+
- '326'
|
130
|
+
connection:
|
131
|
+
- Close
|
132
|
+
body:
|
133
|
+
encoding: ASCII-8BIT
|
134
|
+
string: '{"jobId":"08e0a9a6-86b0-4b19-9e23-46d825a4c114","status":"COMPLETE","message":"Import
|
135
|
+
Successful","courseTitle":"Golf Explained - Run-time Basic Calls","webPathToCourse":"/courses/ScormEngineGemTesting-default/a-valid-course-url/0","parserWarnings":[],"courseLanguages":[],"course":{"id":"a-valid-course-url","version":0,"title":"Golf
|
136
|
+
Explained - Run-time Basic Calls","courseLearningStandard":"SCORM_2004_3RD_EDITION","registrationCount":0,"updated":"2018-09-10T17:29:09.919Z"}}'
|
137
|
+
http_version:
|
138
|
+
recorded_at: Mon, 10 Sep 2018 17:29:13 GMT
|
139
|
+
- request:
|
140
|
+
method: get
|
141
|
+
uri: https://<SCORM_ENGINE_HOST>/ScormEngineInterface/api/v1/ScormEngineGemTesting-default/courses/importJobs/08e0a9a6-86b0-4b19-9e23-46d825a4c114
|
142
|
+
body:
|
143
|
+
encoding: US-ASCII
|
144
|
+
string: ''
|
145
|
+
headers:
|
119
146
|
User-Agent:
|
120
|
-
- ScormEngine Ruby Gem 0.
|
147
|
+
- ScormEngine Ruby Gem 0.6.3
|
121
148
|
Authorization:
|
122
149
|
- Basic <BASIC_AUTH>
|
123
150
|
response:
|
@@ -128,20 +155,20 @@ http_interactions:
|
|
128
155
|
content-type:
|
129
156
|
- application/json
|
130
157
|
date:
|
131
|
-
-
|
158
|
+
- Mon, 10 Sep 2018 17:29:14 GMT
|
132
159
|
server:
|
133
160
|
- nginx
|
134
161
|
vary:
|
135
162
|
- Accept-Encoding
|
136
163
|
content-length:
|
137
|
-
- '
|
164
|
+
- '326'
|
138
165
|
connection:
|
139
166
|
- Close
|
140
167
|
body:
|
141
168
|
encoding: ASCII-8BIT
|
142
|
-
string: '{"jobId":"
|
143
|
-
Successful","courseTitle":"Golf Explained - Run-time Basic Calls
|
144
|
-
Explained - Run-time Basic Calls","courseLearningStandard":"SCORM_2004_3RD_EDITION","registrationCount":0,"updated":"2018-
|
169
|
+
string: '{"jobId":"08e0a9a6-86b0-4b19-9e23-46d825a4c114","status":"COMPLETE","message":"Import
|
170
|
+
Successful","courseTitle":"Golf Explained - Run-time Basic Calls","webPathToCourse":"/courses/ScormEngineGemTesting-default/a-valid-course-url/0","parserWarnings":[],"courseLanguages":[],"course":{"id":"a-valid-course-url","version":0,"title":"Golf
|
171
|
+
Explained - Run-time Basic Calls","courseLearningStandard":"SCORM_2004_3RD_EDITION","registrationCount":0,"updated":"2018-09-10T17:29:09.919Z"}}'
|
145
172
|
http_version:
|
146
|
-
recorded_at:
|
173
|
+
recorded_at: Mon, 10 Sep 2018 17:29:14 GMT
|
147
174
|
recorded_with: VCR 4.0.0
|
@@ -5,12 +5,45 @@ http_interactions:
|
|
5
5
|
uri: https://<SCORM_ENGINE_HOST>/ScormEngineInterface/api/v1/ScormEngineGemTesting-default/courses/importJobs?course=an-invalid-course-url&mayCreateNewVersion=true
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
|
-
string: '{"url":"https://github.com/phallstrom/scorm_engine/raw/master/spec/fixtures/zip/non-existent-key.zip"
|
8
|
+
string: '{"courseName":"an-invalid-course-url","url":"https://github.com/phallstrom/scorm_engine/raw/master/spec/fixtures/zip/non-existent-key.zip"}'
|
9
9
|
headers:
|
10
|
+
User-Agent:
|
11
|
+
- ScormEngine Ruby Gem 0.6.3
|
12
|
+
Authorization:
|
13
|
+
- Basic <BASIC_AUTH>
|
10
14
|
Content-Type:
|
11
15
|
- application/json
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: ''
|
20
|
+
headers:
|
21
|
+
content-type:
|
22
|
+
- application/json
|
23
|
+
date:
|
24
|
+
- Mon, 10 Sep 2018 17:29:15 GMT
|
25
|
+
server:
|
26
|
+
- nginx
|
27
|
+
vary:
|
28
|
+
- Accept-Encoding
|
29
|
+
content-length:
|
30
|
+
- '133'
|
31
|
+
connection:
|
32
|
+
- Close
|
33
|
+
body:
|
34
|
+
encoding: ASCII-8BIT
|
35
|
+
string: '{"result":"151cfd1f-8761-4b21-9d7a-972d99b8fd59","importResult":{"status":"RUNNING","parserWarnings":[],"courseLanguages":[]}}'
|
36
|
+
http_version:
|
37
|
+
recorded_at: Mon, 10 Sep 2018 17:29:15 GMT
|
38
|
+
- request:
|
39
|
+
method: get
|
40
|
+
uri: https://<SCORM_ENGINE_HOST>/ScormEngineInterface/api/v1/ScormEngineGemTesting-default/courses/importJobs/151cfd1f-8761-4b21-9d7a-972d99b8fd59
|
41
|
+
body:
|
42
|
+
encoding: US-ASCII
|
43
|
+
string: ''
|
44
|
+
headers:
|
12
45
|
User-Agent:
|
13
|
-
- ScormEngine Ruby Gem 0.
|
46
|
+
- ScormEngine Ruby Gem 0.6.3
|
14
47
|
Authorization:
|
15
48
|
- Basic <BASIC_AUTH>
|
16
49
|
response:
|
@@ -21,31 +54,29 @@ http_interactions:
|
|
21
54
|
content-type:
|
22
55
|
- application/json
|
23
56
|
date:
|
24
|
-
-
|
57
|
+
- Mon, 10 Sep 2018 17:29:15 GMT
|
25
58
|
server:
|
26
59
|
- nginx
|
27
60
|
vary:
|
28
61
|
- Accept-Encoding
|
29
62
|
content-length:
|
30
|
-
- '
|
63
|
+
- '75'
|
31
64
|
connection:
|
32
65
|
- Close
|
33
66
|
body:
|
34
67
|
encoding: ASCII-8BIT
|
35
|
-
string: '{"
|
68
|
+
string: '{"status":"RUNNING","parserWarnings":[],"courseLanguages":[]}'
|
36
69
|
http_version:
|
37
|
-
recorded_at:
|
70
|
+
recorded_at: Mon, 10 Sep 2018 17:29:15 GMT
|
38
71
|
- request:
|
39
72
|
method: get
|
40
|
-
uri: https://<SCORM_ENGINE_HOST>/ScormEngineInterface/api/v1/ScormEngineGemTesting-default/courses/importJobs/
|
73
|
+
uri: https://<SCORM_ENGINE_HOST>/ScormEngineInterface/api/v1/ScormEngineGemTesting-default/courses/importJobs/151cfd1f-8761-4b21-9d7a-972d99b8fd59
|
41
74
|
body:
|
42
75
|
encoding: US-ASCII
|
43
76
|
string: ''
|
44
77
|
headers:
|
45
|
-
Content-Type:
|
46
|
-
- application/json
|
47
78
|
User-Agent:
|
48
|
-
- ScormEngine Ruby Gem 0.
|
79
|
+
- ScormEngine Ruby Gem 0.6.3
|
49
80
|
Authorization:
|
50
81
|
- Basic <BASIC_AUTH>
|
51
82
|
response:
|
@@ -56,7 +87,7 @@ http_interactions:
|
|
56
87
|
content-type:
|
57
88
|
- application/json
|
58
89
|
date:
|
59
|
-
-
|
90
|
+
- Mon, 10 Sep 2018 17:29:20 GMT
|
60
91
|
server:
|
61
92
|
- nginx
|
62
93
|
vary:
|
@@ -67,7 +98,7 @@ http_interactions:
|
|
67
98
|
- Close
|
68
99
|
body:
|
69
100
|
encoding: ASCII-8BIT
|
70
|
-
string: '{"jobId":"
|
101
|
+
string: '{"jobId":"151cfd1f-8761-4b21-9d7a-972d99b8fd59","status":"ERROR","message":"https://github.com/phallstrom/scorm_engine/raw/master/spec/fixtures/zip/non-existent-key.zip
|
71
102
|
returned (404) <!DOCTYPE html>\n<html>\n <head>\n <meta http-equiv=\"Content-type\"
|
72
103
|
content=\"text/html; charset=utf-8\">\n <meta http-equiv=\"Content-Security-Policy\"
|
73
104
|
content=\"default-src ''none''; base-uri ''self''; connect-src ''self''; form-action
|
@@ -178,18 +209,16 @@ http_interactions:
|
|
178
209
|
title=\"\" alt=\"\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEQUM1QkUxRUI0MUMxMUUyQUQzREIxQzRENUFFNUM5NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEQUM1QkUxRkI0MUMxMUUyQUQzREIxQzRENUFFNUM5NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkUxNkJENjdGQjNGMDExRTJBRDNEQjFDNEQ1QUU1Qzk2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkUxNkJENjgwQjNGMDExRTJBRDNEQjFDNEQ1QUU1Qzk2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+hfPRaQAAB6lJREFUeNrsW2mM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\">\n </a>\n </div>\n\n <script
|
179
210
|
type=\"text/javascript\" src=\"/_error.js\"></script>\n </body>\n</html>\n","courseTitle":"","parserWarnings":[],"courseLanguages":[]}'
|
180
211
|
http_version:
|
181
|
-
recorded_at:
|
212
|
+
recorded_at: Mon, 10 Sep 2018 17:29:21 GMT
|
182
213
|
- request:
|
183
214
|
method: get
|
184
|
-
uri: https://<SCORM_ENGINE_HOST>/ScormEngineInterface/api/v1/ScormEngineGemTesting-default/courses/importJobs/
|
215
|
+
uri: https://<SCORM_ENGINE_HOST>/ScormEngineInterface/api/v1/ScormEngineGemTesting-default/courses/importJobs/151cfd1f-8761-4b21-9d7a-972d99b8fd59
|
185
216
|
body:
|
186
217
|
encoding: US-ASCII
|
187
218
|
string: ''
|
188
219
|
headers:
|
189
|
-
Content-Type:
|
190
|
-
- application/json
|
191
220
|
User-Agent:
|
192
|
-
- ScormEngine Ruby Gem 0.
|
221
|
+
- ScormEngine Ruby Gem 0.6.3
|
193
222
|
Authorization:
|
194
223
|
- Basic <BASIC_AUTH>
|
195
224
|
response:
|
@@ -200,7 +229,7 @@ http_interactions:
|
|
200
229
|
content-type:
|
201
230
|
- application/json
|
202
231
|
date:
|
203
|
-
-
|
232
|
+
- Mon, 10 Sep 2018 17:29:21 GMT
|
204
233
|
server:
|
205
234
|
- nginx
|
206
235
|
vary:
|
@@ -211,7 +240,7 @@ http_interactions:
|
|
211
240
|
- Close
|
212
241
|
body:
|
213
242
|
encoding: ASCII-8BIT
|
214
|
-
string: '{"jobId":"
|
243
|
+
string: '{"jobId":"151cfd1f-8761-4b21-9d7a-972d99b8fd59","status":"ERROR","message":"https://github.com/phallstrom/scorm_engine/raw/master/spec/fixtures/zip/non-existent-key.zip
|
215
244
|
returned (404) <!DOCTYPE html>\n<html>\n <head>\n <meta http-equiv=\"Content-type\"
|
216
245
|
content=\"text/html; charset=utf-8\">\n <meta http-equiv=\"Content-Security-Policy\"
|
217
246
|
content=\"default-src ''none''; base-uri ''self''; connect-src ''self''; form-action
|
@@ -322,5 +351,5 @@ http_interactions:
|
|
322
351
|
title=\"\" alt=\"\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEQUM1QkUxRUI0MUMxMUUyQUQzREIxQzRENUFFNUM5NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEQUM1QkUxRkI0MUMxMUUyQUQzREIxQzRENUFFNUM5NiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkUxNkJENjdGQjNGMDExRTJBRDNEQjFDNEQ1QUU1Qzk2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkUxNkJENjgwQjNGMDExRTJBRDNEQjFDNEQ1QUU1Qzk2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+hfPRaQAAB6lJREFUeNrsW2mM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\">\n </a>\n </div>\n\n <script
|
323
352
|
type=\"text/javascript\" src=\"/_error.js\"></script>\n </body>\n</html>\n","courseTitle":"","parserWarnings":[],"courseLanguages":[]}'
|
324
353
|
http_version:
|
325
|
-
recorded_at:
|
354
|
+
recorded_at: Mon, 10 Sep 2018 17:29:21 GMT
|
326
355
|
recorded_with: VCR 4.0.0
|