moodle_rb 2.0.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: d6a13f6a1496ab275105265f26bbec19d83b453ac8a97626281b2c1b69a194df
4
- data.tar.gz: e01c8f799d65c8dcc52460156698aaa96dd587cf2c3a302d5372d1d798b20ba8
3
+ metadata.gz: adea1a16244c97a8a745da9a7cffe186ed7e87f2d868376a86ac3d311797d183
4
+ data.tar.gz: f34de3627bb2146616461a200721edc75a51ab6ec37ab2c0e930d1f8924f26ff
5
5
  SHA512:
6
- metadata.gz: eb17177bbecd5a301989fa113dbb09be16cb2e30ad6d37692acd08a66432353c5e961809dc6281e5448a5d7f7aca03386d9e832786aeba5e3cff1db3fb154521
7
- data.tar.gz: f543795c39c51f924de908c8156c656bb46eb2047615eca579aeadfa6764faeec98b8e57455957819f34626a386b255518e083abc77eb594a4ac2ef88dcd9c25
6
+ metadata.gz: b2469fd561371959c5d237c5a5cdc3ce1273587e0d9b430338812cc1bd0284497684ef801e2a3117515e82d5ef12ab6e1f3d4d8b03d698bab4b01a39167b7003
7
+ data.tar.gz: 9c352bc8f6e07efc68ed6a5c239fe4ce9220a6659f81a334153eef0af0d138eca98000457e8fe5e04719493ce967cacf47d1699e287ba2f18edd766869b25053
data/README.md CHANGED
@@ -39,6 +39,11 @@ List all courses
39
39
  moodle.courses.index
40
40
  ```
41
41
 
42
+ Search for a course by name
43
+ ```
44
+ moodle.courses.search('My course')
45
+ ```
46
+
42
47
  Show a course
43
48
  ```
44
49
  moodle.courses.show(course_id)
@@ -64,6 +69,14 @@ Get course module
64
69
  moodle.courses.module(course_module_id)
65
70
  ```
66
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
+
67
80
  ### Categories
68
81
 
69
82
  Create a category
@@ -22,6 +22,21 @@ module MoodleRb
22
22
  response.parsed_response
23
23
  end
24
24
 
25
+ # Search courses by (name, module, block, tag)
26
+ def search(criteria_value, criteria_name = 'search')
27
+ response = self.class.get(
28
+ '/webservice/rest/server.php',
29
+ {
30
+ :query => query_hash('core_course_search_courses', token).merge({
31
+ :criterianame => criteria_name,
32
+ :criteriavalue => criteria_value
33
+ })
34
+ }.merge(query_options)
35
+ )
36
+ check_for_errors(response)
37
+ response.parsed_response
38
+ end
39
+
25
40
  # required params:
26
41
  # full_name
27
42
  # short_name
@@ -145,5 +160,23 @@ module MoodleRb
145
160
  check_for_errors(response)
146
161
  response.parsed_response['cm']
147
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
148
181
  end
149
182
  end
@@ -1,5 +1,5 @@
1
1
  module MoodleRb
2
- VERSION = '2.0.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
@@ -0,0 +1,102 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://localhost:8888/moodle28/webservice/rest/server.php?criterianame=search&criteriavalue=My%20course&moodlewsrestformat=json&wsfunction=core_course_search_courses&wstoken=60fc9c9415259404795094957e4ab32f
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
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
+ - bytes
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
+ - Wed, 11 May 2022 03:43:20 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
+ - '3946'
47
+ Connection:
48
+ - keep-alive
49
+ body:
50
+ encoding: UTF-8
51
+ string: '{"total":1,"courses":[{"id":316,"fullname":"My large course","displayname":"My
52
+ large course","shortname":"MLC","categoryid":8,"categoryname":"VETtrak testing","sortorder":50002,"summary":"Test
53
+ course 1<br \/>\nLorem ipsum dolor sit amet, consectetuer adipiscing elit.
54
+ Nulla non arcu lacinia neque faucibus fringilla. Vivamus porttitor turpis
55
+ ac leo. Integer in sapien. Nullam eget nisl. Aliquam erat volutpat. Cras elementum.
56
+ Mauris suscipit, ligula sit amet pharetra semper, nibh ante cursus purus,
57
+ vel sagittis velit mauris vel metus. Integer malesuada. Nullam lectus justo,
58
+ vulputate eget mollis sed, tempor sed magna. Mauris elementum mauris vitae
59
+ tortor. Aliquam erat volutpat.<br \/>\nTemporibus autem quibusdam et aut officiis
60
+ debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae
61
+ sint et molestiae non recusandae. Pellentesque ipsum. Cras pede libero, dapibus
62
+ nec, pretium sit amet, tempor quis. Aliquam ante. Proin in tellus sit amet
63
+ nibh dignissim sagittis. Vivamus porttitor turpis ac leo. Duis bibendum, lectus
64
+ ut viverra rhoncus, dolor nunc faucibus libero, eget facilisis enim ipsum
65
+ id lacus. In sem justo, commodo ut, suscipit at, pharetra vitae, orci. Aliquam
66
+ erat volutpat. Nulla est.<br \/>\nVivamus luctus egestas leo. Aenean fermentum
67
+ risus id tortor. Mauris dictum facilisis augue. Aliquam erat volutpat. Aliquam
68
+ ornare wisi eu metus. Aliquam id dolor. Duis condimentum augue id magna semper
69
+ rutrum. Donec iaculis gravida nulla. Pellentesque ipsum. Etiam dictum tincidunt
70
+ diam. Quisque tincidunt scelerisque libero. Etiam egestas wisi a erat.<br
71
+ \/>\nInteger lacinia. Cum sociis natoque penatibus et magnis dis parturient
72
+ montes, nascetur ridiculus mus. Mauris tincidunt sem sed arcu. Nullam feugiat,
73
+ turpis at pulvinar vulputate, erat libero tristique tellus, nec bibendum odio
74
+ risus sit amet ante. Aliquam id dolor. Maecenas sollicitudin. Et harum quidem
75
+ rerum facilis est et expedita distinctio. Mauris suscipit, ligula sit amet
76
+ pharetra semper, nibh ante cursus purus, vel sagittis velit mauris vel metus.
77
+ Nullam dapibus fermentum ipsum. Pellentesque habitant morbi tristique senectus
78
+ et netus et malesuada fames ac turpis egestas. Nemo enim ipsam voluptatem
79
+ quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni
80
+ dolores eos qui ratione voluptatem sequi nesciunt. Pellentesque sapien. Duis
81
+ risus. Mauris elementum mauris vitae tortor. Suspendisse nisl. Integer rutrum,
82
+ orci vestibulum ullamcorper ultricies, lacus quam ultricies odio, vitae placerat
83
+ pede sem sit amet enim.<br \/>\nIn laoreet, magna id viverra tincidunt, sem
84
+ odio bibendum justo, vel imperdiet sapien wisi sed libero. Proin pede metus,
85
+ vulputate nec, fermentum fringilla, vehicula vitae, justo. Nullam justo enim,
86
+ consectetuer nec, ullamcorper ac, vestibulum in, elit. Quis autem vel eum
87
+ iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur,
88
+ vel illum qui dolorem eum fugiat quo voluptas nulla pariatur? Maecenas lorem.
89
+ Etiam posuere lacus quis dolor. Class aptent taciti sociosqu ad litora torquent
90
+ per conubia nostra, per inceptos hymenaeos. Curabitur ligula sapien, pulvinar
91
+ a vestibulum quis, facilisis vel sapien. Nam sed tellus id magna elementum
92
+ tincidunt. Suspendisse nisl. Vivamus luctus egestas leo. Nulla non arcu lacinia
93
+ neque faucibus fringilla. Etiam dui sem, fermentum vitae, sagittis id, malesuada
94
+ in, quam. Etiam dictum tincidunt diam. Etiam commodo dui eget wisi. Nemo enim
95
+ ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia
96
+ consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Proin
97
+ pede metus, vulputate nec, fermentum fringilla, vehicula vitae, justo. Duis
98
+ ante orci, molestie vitae vehicula venenatis, tincidunt ac pede. Pellentesque
99
+ sapien.","summaryformat":1,"summaryfiles":[],"overviewfiles":[],"showactivitydates":true,"showcompletionconditions":true,"contacts":[],"enrollmentmethods":["manual"]}],"warnings":[]}'
100
+ http_version:
101
+ recorded_at: Wed, 11 May 2022 03:42:46 GMT
102
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,55 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://localhost:8888/moodle28/webservice/rest/server.php?criterianame=search&criteriavalue=My%20course&moodlewsrestformat=json&wsfunction=core_course_search_courses&wstoken=
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
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
+ - bytes
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
+ - Wed, 11 May 2022 03:43:20 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: Wed, 11 May 2022 03:42:46 GMT
55
+ recorded_with: VCR 2.9.3
@@ -36,6 +36,27 @@ describe MoodleRb::Courses do
36
36
  end
37
37
  end
38
38
 
39
+ describe '#search', :vcr => {
40
+ :match_requests_on => [:body, :path], :record => :once
41
+ } do
42
+ let(:result) { course_moodle_rb.search('My course') }
43
+
44
+ specify do
45
+ expect(result["total"]).to eq 1
46
+ expect(result["courses"]).to be_a Array
47
+ end
48
+
49
+ context 'when using invalid token' do
50
+ let(:token) { '' }
51
+ specify do
52
+ expect{ course_moodle_rb.search('My course') }.to raise_error(
53
+ MoodleRb::MoodleError,
54
+ 'Invalid token - token not found'
55
+ )
56
+ end
57
+ end
58
+ end
59
+
39
60
  describe '#create', :vcr => {
40
61
  :match_requests_on => [:path], :record => :once
41
62
  } do
@@ -226,4 +247,48 @@ describe MoodleRb::Courses do
226
247
  end
227
248
  end
228
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
229
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.0.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-04-08 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
@@ -147,6 +150,8 @@ files:
147
150
  - spec/cassettes/MoodleRb_Courses/_index/when_using_invalid_token/.yml
148
151
  - spec/cassettes/MoodleRb_Courses/_module/when_using_invalid_token/.yml
149
152
  - spec/cassettes/MoodleRb_Courses/_module/when_using_valid_token/.yml
153
+ - spec/cassettes/MoodleRb_Courses/_search/.yml
154
+ - spec/cassettes/MoodleRb_Courses/_search/when_using_invalid_token/.yml
150
155
  - spec/cassettes/MoodleRb_Courses/_show/.yml
151
156
  - spec/cassettes/MoodleRb_Courses/_show/when_using_invalid_token/.yml
152
157
  - spec/cassettes/MoodleRb_Enrolments/_create/.yml
@@ -217,6 +222,9 @@ test_files:
217
222
  - spec/cassettes/MoodleRb_Client/_site_info/when_valid_token/.yml
218
223
  - spec/cassettes/MoodleRb_Courses/_contents/when_using_invalid_token/.yml
219
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
220
228
  - spec/cassettes/MoodleRb_Courses/_create/.yml
221
229
  - spec/cassettes/MoodleRb_Courses/_create/when_validation_fails/.yml
222
230
  - spec/cassettes/MoodleRb_Courses/_destroy/when_using_invalid_token/.yml
@@ -230,6 +238,8 @@ test_files:
230
238
  - spec/cassettes/MoodleRb_Courses/_index/when_using_invalid_token/.yml
231
239
  - spec/cassettes/MoodleRb_Courses/_module/when_using_invalid_token/.yml
232
240
  - spec/cassettes/MoodleRb_Courses/_module/when_using_valid_token/.yml
241
+ - spec/cassettes/MoodleRb_Courses/_search/.yml
242
+ - spec/cassettes/MoodleRb_Courses/_search/when_using_invalid_token/.yml
233
243
  - spec/cassettes/MoodleRb_Courses/_show/.yml
234
244
  - spec/cassettes/MoodleRb_Courses/_show/when_using_invalid_token/.yml
235
245
  - spec/cassettes/MoodleRb_Enrolments/_create/.yml