moodle_rb 2.1.0 → 2.1.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ec5d80c43c0ed637457438c025e18d3c864a31cf24c5378e28a08a7169ef26c0
4
- data.tar.gz: 1338a10d558a046135629df0982cd601fe938a127cb3f08e3648b7782eb49900
3
+ metadata.gz: adea1a16244c97a8a745da9a7cffe186ed7e87f2d868376a86ac3d311797d183
4
+ data.tar.gz: f34de3627bb2146616461a200721edc75a51ab6ec37ab2c0e930d1f8924f26ff
5
5
  SHA512:
6
- metadata.gz: 4669abc20c8fd9749793ae2b3af6359a8a5f908d02607dc84788b45f407dc65688c99aa23a336f0e485bb10fbcbc07b2577e131211a954367fe883b09298f387
7
- data.tar.gz: c7cb780a9a535cbb6fe589a2b2d1945deb356ca8afc54ce112a362cbecfdd20bc59208bef8ad87b41b5b1f096ad9d49f782e2e6a62520db6dda824201b2e0d52
6
+ metadata.gz: b2469fd561371959c5d237c5a5cdc3ce1273587e0d9b430338812cc1bd0284497684ef801e2a3117515e82d5ef12ab6e1f3d4d8b03d698bab4b01a39167b7003
7
+ data.tar.gz: 9c352bc8f6e07efc68ed6a5c239fe4ce9220a6659f81a334153eef0af0d138eca98000457e8fe5e04719493ce967cacf47d1699e287ba2f18edd766869b25053
data/README.md CHANGED
@@ -69,6 +69,14 @@ Get course module
69
69
  moodle.courses.module(course_module_id)
70
70
  ```
71
71
 
72
+ Import course data from a course into another course
73
+ ```
74
+ moodle.courses.core_course_import_course(
75
+ :from_course_id => from_course_id,
76
+ :to_course_id => to_course_id
77
+ )
78
+ ```
79
+
72
80
  ### Categories
73
81
 
74
82
  Create a category
@@ -160,5 +160,23 @@ module MoodleRb
160
160
  check_for_errors(response)
161
161
  response.parsed_response['cm']
162
162
  end
163
+
164
+ # required params:
165
+ # from_course_id: the id of the course we are importing from
166
+ # to_course_id: the id of the course we are importing to
167
+ def core_course_import_course(params)
168
+ response = self.class.post(
169
+ '/webservice/rest/server.php',
170
+ {
171
+ :query => query_hash('core_course_import_course', token),
172
+ :body => {
173
+ :importfrom => params[:from_course_id],
174
+ :importto => params[:to_course_id]
175
+ }
176
+ }.merge(query_options)
177
+ )
178
+ check_for_errors(response)
179
+ response.code == 200 && response.parsed_response.nil?
180
+ end
163
181
  end
164
182
  end
@@ -1,5 +1,5 @@
1
1
  module MoodleRb
2
- VERSION = '2.1.0' unless defined?(self::VERSION)
2
+ VERSION = '2.1.5' unless defined?(self::VERSION)
3
3
 
4
4
  def self.version
5
5
  VERSION
@@ -0,0 +1,55 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://localhost:8888/moodle28/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_course_import_course&wstoken=
6
+ body:
7
+ encoding: UTF-8
8
+ string: importfrom=&importto=
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Accept-Ranges:
22
+ - none
23
+ Access-Control-Allow-Origin:
24
+ - "*"
25
+ Age:
26
+ - '0'
27
+ Cache-Control:
28
+ - private, must-revalidate, pre-check=0, post-check=0, max-age=0
29
+ Content-Type:
30
+ - application/json
31
+ Date:
32
+ - Mon, 13 Feb 2023 02:46:46 GMT
33
+ Expires:
34
+ - Thu, 01 Jan 1970 00:00:00 GMT
35
+ Pragma:
36
+ - no-cache
37
+ Server:
38
+ - Moodle
39
+ X-Cache:
40
+ - MISS
41
+ X-Clacks-Overhead:
42
+ - GNU Terry Pratchett
43
+ X-Powered-By:
44
+ - Moodle Ninjas
45
+ Content-Length:
46
+ - '103'
47
+ Connection:
48
+ - keep-alive
49
+ body:
50
+ encoding: UTF-8
51
+ string: '{"exception":"moodle_exception","errorcode":"invalidtoken","message":"Invalid
52
+ token - token not found"}'
53
+ http_version:
54
+ recorded_at: Mon, 13 Feb 2023 02:46:46 GMT
55
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,54 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://localhost:8888/moodle28/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_course_import_course&wstoken=60fc9c9415259404795094957e4ab32f
6
+ body:
7
+ encoding: UTF-8
8
+ string: importfrom=467&importto=468
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Accept-Ranges:
22
+ - none
23
+ Access-Control-Allow-Origin:
24
+ - "*"
25
+ Age:
26
+ - '0'
27
+ Cache-Control:
28
+ - private, must-revalidate, pre-check=0, post-check=0, max-age=0
29
+ Content-Type:
30
+ - application/json
31
+ Date:
32
+ - Mon, 13 Feb 2023 02:46:43 GMT
33
+ Expires:
34
+ - Thu, 01 Jan 1970 00:00:00 GMT
35
+ Pragma:
36
+ - no-cache
37
+ Server:
38
+ - Moodle
39
+ X-Cache:
40
+ - MISS
41
+ X-Clacks-Overhead:
42
+ - GNU Terry Pratchett
43
+ X-Powered-By:
44
+ - Moodle Ninjas
45
+ Content-Length:
46
+ - '4'
47
+ Connection:
48
+ - keep-alive
49
+ body:
50
+ encoding: UTF-8
51
+ string: 'null'
52
+ http_version:
53
+ recorded_at: Mon, 13 Feb 2023 02:46:44 GMT
54
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,55 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://localhost:8888/moodle28/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_course_import_course&wstoken=60fc9c9415259404795094957e4ab32f
6
+ body:
7
+ encoding: UTF-8
8
+ string: importfrom=467&importto=-1
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Accept-Ranges:
22
+ - none
23
+ Access-Control-Allow-Origin:
24
+ - "*"
25
+ Age:
26
+ - '0'
27
+ Cache-Control:
28
+ - private, must-revalidate, pre-check=0, post-check=0, max-age=0
29
+ Content-Type:
30
+ - application/json
31
+ Date:
32
+ - Mon, 13 Feb 2023 02:46:45 GMT
33
+ Expires:
34
+ - Thu, 01 Jan 1970 00:00:00 GMT
35
+ Pragma:
36
+ - no-cache
37
+ Server:
38
+ - Moodle
39
+ X-Cache:
40
+ - MISS
41
+ X-Clacks-Overhead:
42
+ - GNU Terry Pratchett
43
+ X-Powered-By:
44
+ - Moodle Ninjas
45
+ Content-Length:
46
+ - '117'
47
+ Connection:
48
+ - keep-alive
49
+ body:
50
+ encoding: UTF-8
51
+ string: '{"exception":"moodle_exception","errorcode":"invalidcourseid","message":"You
52
+ are trying to use an invalid course ID"}'
53
+ http_version:
54
+ recorded_at: Mon, 13 Feb 2023 02:46:45 GMT
55
+ recorded_with: VCR 2.9.3
@@ -247,4 +247,48 @@ describe MoodleRb::Courses do
247
247
  end
248
248
  end
249
249
  end
250
+
251
+ describe '#core_course_import_course', :vcr => {
252
+ :match_requests_on => [:path], :record => :once
253
+ } do
254
+ context 'when using valid token' do
255
+ let(:params) do
256
+ {
257
+ :from_course_id => 467,
258
+ :to_course_id => 468
259
+ }
260
+ end
261
+ let(:result) { course_moodle_rb.core_course_import_course(params) }
262
+
263
+ specify do
264
+ expect(result).to eq true
265
+ end
266
+
267
+ context 'when using invalid course id' do
268
+ let(:params) do
269
+ {
270
+ :from_course_id => 467,
271
+ :to_course_id => -1
272
+ }
273
+ end
274
+
275
+ specify do
276
+ expect{ course_moodle_rb.core_course_import_course(params) }.to raise_error(
277
+ MoodleRb::MoodleError,
278
+ 'You are trying to use an invalid course ID'
279
+ )
280
+ end
281
+ end
282
+ end
283
+
284
+ context 'when using invalid token' do
285
+ let(:token) { '' }
286
+ specify do
287
+ expect{ course_moodle_rb.core_course_import_course({}) }.to raise_error(
288
+ MoodleRb::MoodleError,
289
+ 'Invalid token - token not found'
290
+ )
291
+ end
292
+ end
293
+ end
250
294
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moodle_rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Giffney
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-12 00:00:00.000000000 Z
11
+ date: 2023-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -134,6 +134,9 @@ files:
134
134
  - spec/cassettes/MoodleRb_Client/_site_info/when_valid_token/.yml
135
135
  - spec/cassettes/MoodleRb_Courses/_contents/when_using_invalid_token/.yml
136
136
  - spec/cassettes/MoodleRb_Courses/_contents/when_using_valid_token/.yml
137
+ - spec/cassettes/MoodleRb_Courses/_core_course_import_course/when_using_invalid_token/.yml
138
+ - spec/cassettes/MoodleRb_Courses/_core_course_import_course/when_using_valid_token/.yml
139
+ - spec/cassettes/MoodleRb_Courses/_core_course_import_course/when_using_valid_token/when_using_invalid_course_id/.yml
137
140
  - spec/cassettes/MoodleRb_Courses/_create/.yml
138
141
  - spec/cassettes/MoodleRb_Courses/_create/when_validation_fails/.yml
139
142
  - spec/cassettes/MoodleRb_Courses/_destroy/when_using_invalid_token/.yml
@@ -219,6 +222,9 @@ test_files:
219
222
  - spec/cassettes/MoodleRb_Client/_site_info/when_valid_token/.yml
220
223
  - spec/cassettes/MoodleRb_Courses/_contents/when_using_invalid_token/.yml
221
224
  - spec/cassettes/MoodleRb_Courses/_contents/when_using_valid_token/.yml
225
+ - spec/cassettes/MoodleRb_Courses/_core_course_import_course/when_using_invalid_token/.yml
226
+ - spec/cassettes/MoodleRb_Courses/_core_course_import_course/when_using_valid_token/.yml
227
+ - spec/cassettes/MoodleRb_Courses/_core_course_import_course/when_using_valid_token/when_using_invalid_course_id/.yml
222
228
  - spec/cassettes/MoodleRb_Courses/_create/.yml
223
229
  - spec/cassettes/MoodleRb_Courses/_create/when_validation_fails/.yml
224
230
  - spec/cassettes/MoodleRb_Courses/_destroy/when_using_invalid_token/.yml