moodle_rb 2.1.0 → 2.2.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.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +13 -1
  3. data/lib/moodle_rb/courses.rb +25 -5
  4. data/lib/moodle_rb/version.rb +1 -1
  5. data/spec/lib/moodle_rb/courses_spec.rb +61 -4
  6. metadata +10 -120
  7. data/.github/workflows/build.yml +0 -36
  8. data/.github/workflows/publish.yml +0 -27
  9. data/.gitignore +0 -35
  10. data/.travis.yml +0 -9
  11. data/Dockerfile +0 -10
  12. data/Gemfile +0 -2
  13. data/docker-compose.yml +0 -6
  14. data/moodle_rb.gemspec +0 -26
  15. data/spec/cassettes/MoodleRb_Categories/_create/.yml +0 -39
  16. data/spec/cassettes/MoodleRb_Categories/_create/when_validation_fails/.yml +0 -39
  17. data/spec/cassettes/MoodleRb_Categories/_destroy/when_using_invalid_token/.yml +0 -39
  18. data/spec/cassettes/MoodleRb_Categories/_destroy/when_using_valid_token/.yml +0 -76
  19. data/spec/cassettes/MoodleRb_Categories/_index/.yml +0 -39
  20. data/spec/cassettes/MoodleRb_Categories/_index/when_using_invalid_token/.yml +0 -39
  21. data/spec/cassettes/MoodleRb_Categories/_show/.yml +0 -39
  22. data/spec/cassettes/MoodleRb_Categories/_show/when_using_invalid_token/.yml +0 -39
  23. data/spec/cassettes/MoodleRb_Client/_site_info/when_invalid_token/.yml +0 -39
  24. data/spec/cassettes/MoodleRb_Client/_site_info/when_valid_token/.yml +0 -39
  25. data/spec/cassettes/MoodleRb_Courses/_contents/when_using_invalid_token/.yml +0 -52
  26. data/spec/cassettes/MoodleRb_Courses/_contents/when_using_valid_token/.yml +0 -52
  27. data/spec/cassettes/MoodleRb_Courses/_create/.yml +0 -39
  28. data/spec/cassettes/MoodleRb_Courses/_create/when_validation_fails/.yml +0 -75
  29. data/spec/cassettes/MoodleRb_Courses/_destroy/when_using_invalid_token/.yml +0 -39
  30. data/spec/cassettes/MoodleRb_Courses/_destroy/when_using_valid_token/.yml +0 -75
  31. data/spec/cassettes/MoodleRb_Courses/_destroy/when_using_valid_token/when_using_invalid_course_id/.yml +0 -39
  32. data/spec/cassettes/MoodleRb_Courses/_enrolled_users/when_using_invalid_token/.yml +0 -39
  33. data/spec/cassettes/MoodleRb_Courses/_enrolled_users/when_using_valid_token/.yml +0 -75
  34. data/spec/cassettes/MoodleRb_Courses/_grade_items/when_using_invalid_token/.yml +0 -52
  35. data/spec/cassettes/MoodleRb_Courses/_grade_items/when_using_valid_token/.yml +0 -56
  36. data/spec/cassettes/MoodleRb_Courses/_index/.yml +0 -39
  37. data/spec/cassettes/MoodleRb_Courses/_index/when_using_invalid_token/.yml +0 -39
  38. data/spec/cassettes/MoodleRb_Courses/_module/when_using_invalid_token/.yml +0 -52
  39. data/spec/cassettes/MoodleRb_Courses/_module/when_using_valid_token/.yml +0 -51
  40. data/spec/cassettes/MoodleRb_Courses/_search/.yml +0 -102
  41. data/spec/cassettes/MoodleRb_Courses/_search/when_using_invalid_token/.yml +0 -55
  42. data/spec/cassettes/MoodleRb_Courses/_show/.yml +0 -39
  43. data/spec/cassettes/MoodleRb_Courses/_show/when_using_invalid_token/.yml +0 -39
  44. data/spec/cassettes/MoodleRb_Enrolments/_create/.yml +0 -39
  45. data/spec/cassettes/MoodleRb_Enrolments/_create/when_user_or_course_id_is_invalid/.yml +0 -39
  46. data/spec/cassettes/MoodleRb_Enrolments/_destroy/.yml +0 -51
  47. data/spec/cassettes/MoodleRb_Enrolments/_destroy/when_user_or_course_id_is_invalid/.yml +0 -52
  48. data/spec/cassettes/MoodleRb_Grades/_by_assignment/.yml +0 -39
  49. data/spec/cassettes/MoodleRb_Grades/_by_course/.yml +0 -39
  50. data/spec/cassettes/MoodleRb_Grades/_by_course/when_invalid_parameters/.yml +0 -39
  51. data/spec/cassettes/MoodleRb_Users/_create/.yml +0 -39
  52. data/spec/cassettes/MoodleRb_Users/_create/when_missing_required_parameters/.yml +0 -39
  53. data/spec/cassettes/MoodleRb_Users/_destroy/.yml +0 -39
  54. data/spec/cassettes/MoodleRb_Users/_destroy/when_id_does_not_exist/.yml +0 -39
  55. data/spec/cassettes/MoodleRb_Users/_destroy/when_using_invalid_token/.yml +0 -39
  56. data/spec/cassettes/MoodleRb_Users/_enrolled_courses/.yml +0 -39
  57. data/spec/cassettes/MoodleRb_Users/_enrolled_courses/when_using_invalid_token/.yml +0 -39
  58. data/spec/cassettes/MoodleRb_Users/_search/.yml +0 -39
  59. data/spec/cassettes/MoodleRb_Users/_search/when_using_invalid_token/.yml +0 -39
  60. data/spec/cassettes/MoodleRb_Users/_search_identity/.yml +0 -51
  61. data/spec/cassettes/MoodleRb_Users/_search_identity/when_using_invalid_token/.yml +0 -52
  62. data/spec/cassettes/MoodleRb_Users/_show/.yml +0 -39
  63. data/spec/cassettes/MoodleRb_Users/_show/when_using_invalid_token/.yml +0 -39
  64. data/spec/cassettes/MoodleRb_Users/_update/.yml +0 -39
  65. data/spec/cassettes/MoodleRb_Users/_update/when_using_invalid_token/.yml +0 -39
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ec5d80c43c0ed637457438c025e18d3c864a31cf24c5378e28a08a7169ef26c0
4
- data.tar.gz: 1338a10d558a046135629df0982cd601fe938a127cb3f08e3648b7782eb49900
3
+ metadata.gz: 6052eb0f6c6ee5d3c831916598612d0007a352ab61cd3e496b7ef1344a4c4c27
4
+ data.tar.gz: f7464546db1cec7e5b7283e4b422e2f21de0d4b683f86e228f20884f5b314229
5
5
  SHA512:
6
- metadata.gz: 4669abc20c8fd9749793ae2b3af6359a8a5f908d02607dc84788b45f407dc65688c99aa23a336f0e485bb10fbcbc07b2577e131211a954367fe883b09298f387
7
- data.tar.gz: c7cb780a9a535cbb6fe589a2b2d1945deb356ca8afc54ce112a362cbecfdd20bc59208bef8ad87b41b5b1f096ad9d49f782e2e6a62520db6dda824201b2e0d52
6
+ metadata.gz: 808bd084a4ed5005f8f5746ba592fa04095390260b8f41a89784f4dd7709cfa77fdd3fe54d9e3dc458a38c90e4a25ac39e8e6969dda2e587398cbb15917b1358
7
+ data.tar.gz: 378be0e6d456c67a92deaf21a6c3908dd6afafb133de801ad1c4235010e12a9cc1380670836958006c3873dee891b6624a383d845e64dfd5bd106fcd7b970945
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # MoodleRb
2
2
 
3
- [![Build](https://github.com/jobready/moodle-rb/actions/workflows/build.yml/badge.svg)](https://github.com/jobready/moodle-rb/actions/workflows/build.yml)
3
+ [![Build](https://github.com/jobready/moodle-rb/actions/workflows/build.yml/badge.svg)](https://github.com/jobready/moodle-rb/actions/workflows/build.yml)
4
4
 
5
5
  [![Gem Version](https://badge.fury.io/rb/moodle_rb.svg)](https://badge.fury.io/rb/moodle_rb)
6
6
 
@@ -49,6 +49,10 @@ Show a course
49
49
  moodle.courses.show(course_id)
50
50
  ```
51
51
 
52
+ ```
53
+ moodle.courses.show(course_ids) # Example: moodle.courses.show(1234, 234, ...)
54
+ ```
55
+
52
56
  Delete a course
53
57
  ```
54
58
  moodle.courses.destroy(course_id)
@@ -69,6 +73,14 @@ Get course module
69
73
  moodle.courses.module(course_module_id)
70
74
  ```
71
75
 
76
+ Import course data from a course into another course
77
+ ```
78
+ moodle.courses.core_course_import_course(
79
+ :from_course_id => from_course_id,
80
+ :to_course_id => to_course_id
81
+ )
82
+ ```
83
+
72
84
  ### Categories
73
85
 
74
86
  Create a category
@@ -69,22 +69,24 @@ module MoodleRb
69
69
  response.parsed_response.first
70
70
  end
71
71
 
72
- def show(id)
72
+ def show(*id)
73
+ ids = id.map.with_index do |item, idx|
74
+ [idx.to_s, item]
75
+ end.to_h
76
+
73
77
  response = self.class.post(
74
78
  '/webservice/rest/server.php',
75
79
  {
76
80
  :query => query_hash('core_course_get_courses', token),
77
81
  :body => {
78
82
  :options => {
79
- :ids => {
80
- '0' => id
81
- }
83
+ ids: ids
82
84
  }
83
85
  }
84
86
  }.merge(query_options)
85
87
  )
86
88
  check_for_errors(response)
87
- response.parsed_response.first
89
+ id.count > 1 ? response.parsed_response : response.parsed_response.first
88
90
  end
89
91
 
90
92
  def destroy(id)
@@ -160,5 +162,23 @@ module MoodleRb
160
162
  check_for_errors(response)
161
163
  response.parsed_response['cm']
162
164
  end
165
+
166
+ # required params:
167
+ # from_course_id: the id of the course we are importing from
168
+ # to_course_id: the id of the course we are importing to
169
+ def core_course_import_course(params)
170
+ response = self.class.post(
171
+ '/webservice/rest/server.php',
172
+ {
173
+ :query => query_hash('core_course_import_course', token),
174
+ :body => {
175
+ :importfrom => params[:from_course_id],
176
+ :importto => params[:to_course_id]
177
+ }
178
+ }.merge(query_options)
179
+ )
180
+ check_for_errors(response)
181
+ response.code == 200 && response.parsed_response.nil?
182
+ end
163
183
  end
164
184
  end
@@ -1,5 +1,5 @@
1
1
  module MoodleRb
2
- VERSION = '2.1.0' unless defined?(self::VERSION)
2
+ VERSION = '2.2.0' unless defined?(self::VERSION)
3
3
 
4
4
  def self.version
5
5
  VERSION
@@ -86,11 +86,24 @@ describe MoodleRb::Courses do
86
86
  :match_requests_on => [:path], :record => :once
87
87
  } do
88
88
  let(:id) { 1 }
89
- let(:result) { course_moodle_rb.show(id) }
90
89
 
91
- specify do
92
- expect(result).to be_a Hash
93
- expect(result['id']).to eq 1
90
+ context 'when passing single id' do
91
+ let(:result) { course_moodle_rb.show(id) }
92
+
93
+ specify do
94
+ expect(result).to be_a Hash
95
+ expect(result['id']).to eq 1
96
+ end
97
+ end
98
+
99
+ context 'when passing array of ids' do
100
+ let(:result) { course_moodle_rb.show(1, 2) }
101
+
102
+ specify do
103
+ expect(result).to be_a Array
104
+ expect(result[0]['id']).to eq 1
105
+ expect(result[1]['id']).to eq 2
106
+ end
94
107
  end
95
108
 
96
109
  context 'when using invalid token' do
@@ -247,4 +260,48 @@ describe MoodleRb::Courses do
247
260
  end
248
261
  end
249
262
  end
263
+
264
+ describe '#core_course_import_course', :vcr => {
265
+ :match_requests_on => [:path], :record => :once
266
+ } do
267
+ context 'when using valid token' do
268
+ let(:params) do
269
+ {
270
+ :from_course_id => 467,
271
+ :to_course_id => 468
272
+ }
273
+ end
274
+ let(:result) { course_moodle_rb.core_course_import_course(params) }
275
+
276
+ specify do
277
+ expect(result).to eq true
278
+ end
279
+
280
+ context 'when using invalid course id' do
281
+ let(:params) do
282
+ {
283
+ :from_course_id => 467,
284
+ :to_course_id => -1
285
+ }
286
+ end
287
+
288
+ specify do
289
+ expect{ course_moodle_rb.core_course_import_course(params) }.to raise_error(
290
+ MoodleRb::MoodleError,
291
+ 'You are trying to use an invalid course ID'
292
+ )
293
+ end
294
+ end
295
+ end
296
+
297
+ context 'when using invalid token' do
298
+ let(:token) { '' }
299
+ specify do
300
+ expect{ course_moodle_rb.core_course_import_course({}) }.to raise_error(
301
+ MoodleRb::MoodleError,
302
+ 'Invalid token - token not found'
303
+ )
304
+ end
305
+ end
306
+ end
250
307
  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.2.0
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: 2024-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.3'
19
+ version: '2'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.3'
26
+ version: '2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -101,16 +101,9 @@ executables: []
101
101
  extensions: []
102
102
  extra_rdoc_files: []
103
103
  files:
104
- - ".github/workflows/build.yml"
105
- - ".github/workflows/publish.yml"
106
- - ".gitignore"
107
- - ".travis.yml"
108
- - Dockerfile
109
- - Gemfile
110
104
  - LICENSE
111
105
  - README.md
112
106
  - Rakefile
113
- - docker-compose.yml
114
107
  - lib/moodle_rb.rb
115
108
  - lib/moodle_rb/categories.rb
116
109
  - lib/moodle_rb/client.rb
@@ -121,58 +114,6 @@ files:
121
114
  - lib/moodle_rb/users.rb
122
115
  - lib/moodle_rb/utility.rb
123
116
  - lib/moodle_rb/version.rb
124
- - moodle_rb.gemspec
125
- - spec/cassettes/MoodleRb_Categories/_create/.yml
126
- - spec/cassettes/MoodleRb_Categories/_create/when_validation_fails/.yml
127
- - spec/cassettes/MoodleRb_Categories/_destroy/when_using_invalid_token/.yml
128
- - spec/cassettes/MoodleRb_Categories/_destroy/when_using_valid_token/.yml
129
- - spec/cassettes/MoodleRb_Categories/_index/.yml
130
- - spec/cassettes/MoodleRb_Categories/_index/when_using_invalid_token/.yml
131
- - spec/cassettes/MoodleRb_Categories/_show/.yml
132
- - spec/cassettes/MoodleRb_Categories/_show/when_using_invalid_token/.yml
133
- - spec/cassettes/MoodleRb_Client/_site_info/when_invalid_token/.yml
134
- - spec/cassettes/MoodleRb_Client/_site_info/when_valid_token/.yml
135
- - spec/cassettes/MoodleRb_Courses/_contents/when_using_invalid_token/.yml
136
- - spec/cassettes/MoodleRb_Courses/_contents/when_using_valid_token/.yml
137
- - spec/cassettes/MoodleRb_Courses/_create/.yml
138
- - spec/cassettes/MoodleRb_Courses/_create/when_validation_fails/.yml
139
- - spec/cassettes/MoodleRb_Courses/_destroy/when_using_invalid_token/.yml
140
- - spec/cassettes/MoodleRb_Courses/_destroy/when_using_valid_token/.yml
141
- - spec/cassettes/MoodleRb_Courses/_destroy/when_using_valid_token/when_using_invalid_course_id/.yml
142
- - spec/cassettes/MoodleRb_Courses/_enrolled_users/when_using_invalid_token/.yml
143
- - spec/cassettes/MoodleRb_Courses/_enrolled_users/when_using_valid_token/.yml
144
- - spec/cassettes/MoodleRb_Courses/_grade_items/when_using_invalid_token/.yml
145
- - spec/cassettes/MoodleRb_Courses/_grade_items/when_using_valid_token/.yml
146
- - spec/cassettes/MoodleRb_Courses/_index/.yml
147
- - spec/cassettes/MoodleRb_Courses/_index/when_using_invalid_token/.yml
148
- - spec/cassettes/MoodleRb_Courses/_module/when_using_invalid_token/.yml
149
- - spec/cassettes/MoodleRb_Courses/_module/when_using_valid_token/.yml
150
- - spec/cassettes/MoodleRb_Courses/_search/.yml
151
- - spec/cassettes/MoodleRb_Courses/_search/when_using_invalid_token/.yml
152
- - spec/cassettes/MoodleRb_Courses/_show/.yml
153
- - spec/cassettes/MoodleRb_Courses/_show/when_using_invalid_token/.yml
154
- - spec/cassettes/MoodleRb_Enrolments/_create/.yml
155
- - spec/cassettes/MoodleRb_Enrolments/_create/when_user_or_course_id_is_invalid/.yml
156
- - spec/cassettes/MoodleRb_Enrolments/_destroy/.yml
157
- - spec/cassettes/MoodleRb_Enrolments/_destroy/when_user_or_course_id_is_invalid/.yml
158
- - spec/cassettes/MoodleRb_Grades/_by_assignment/.yml
159
- - spec/cassettes/MoodleRb_Grades/_by_course/.yml
160
- - spec/cassettes/MoodleRb_Grades/_by_course/when_invalid_parameters/.yml
161
- - spec/cassettes/MoodleRb_Users/_create/.yml
162
- - spec/cassettes/MoodleRb_Users/_create/when_missing_required_parameters/.yml
163
- - spec/cassettes/MoodleRb_Users/_destroy/.yml
164
- - spec/cassettes/MoodleRb_Users/_destroy/when_id_does_not_exist/.yml
165
- - spec/cassettes/MoodleRb_Users/_destroy/when_using_invalid_token/.yml
166
- - spec/cassettes/MoodleRb_Users/_enrolled_courses/.yml
167
- - spec/cassettes/MoodleRb_Users/_enrolled_courses/when_using_invalid_token/.yml
168
- - spec/cassettes/MoodleRb_Users/_search/.yml
169
- - spec/cassettes/MoodleRb_Users/_search/when_using_invalid_token/.yml
170
- - spec/cassettes/MoodleRb_Users/_search_identity/.yml
171
- - spec/cassettes/MoodleRb_Users/_search_identity/when_using_invalid_token/.yml
172
- - spec/cassettes/MoodleRb_Users/_show/.yml
173
- - spec/cassettes/MoodleRb_Users/_show/when_using_invalid_token/.yml
174
- - spec/cassettes/MoodleRb_Users/_update/.yml
175
- - spec/cassettes/MoodleRb_Users/_update/when_using_invalid_token/.yml
176
117
  - spec/lib/moodle_rb/categories_spec.rb
177
118
  - spec/lib/moodle_rb/client_spec.rb
178
119
  - spec/lib/moodle_rb/courses_spec.rb
@@ -207,64 +148,13 @@ signing_key:
207
148
  specification_version: 4
208
149
  summary: A Ruby client for the Moodle API
209
150
  test_files:
210
- - spec/cassettes/MoodleRb_Categories/_create/.yml
211
- - spec/cassettes/MoodleRb_Categories/_create/when_validation_fails/.yml
212
- - spec/cassettes/MoodleRb_Categories/_destroy/when_using_invalid_token/.yml
213
- - spec/cassettes/MoodleRb_Categories/_destroy/when_using_valid_token/.yml
214
- - spec/cassettes/MoodleRb_Categories/_index/.yml
215
- - spec/cassettes/MoodleRb_Categories/_index/when_using_invalid_token/.yml
216
- - spec/cassettes/MoodleRb_Categories/_show/.yml
217
- - spec/cassettes/MoodleRb_Categories/_show/when_using_invalid_token/.yml
218
- - spec/cassettes/MoodleRb_Client/_site_info/when_invalid_token/.yml
219
- - spec/cassettes/MoodleRb_Client/_site_info/when_valid_token/.yml
220
- - spec/cassettes/MoodleRb_Courses/_contents/when_using_invalid_token/.yml
221
- - spec/cassettes/MoodleRb_Courses/_contents/when_using_valid_token/.yml
222
- - spec/cassettes/MoodleRb_Courses/_create/.yml
223
- - spec/cassettes/MoodleRb_Courses/_create/when_validation_fails/.yml
224
- - spec/cassettes/MoodleRb_Courses/_destroy/when_using_invalid_token/.yml
225
- - spec/cassettes/MoodleRb_Courses/_destroy/when_using_valid_token/.yml
226
- - spec/cassettes/MoodleRb_Courses/_destroy/when_using_valid_token/when_using_invalid_course_id/.yml
227
- - spec/cassettes/MoodleRb_Courses/_enrolled_users/when_using_invalid_token/.yml
228
- - spec/cassettes/MoodleRb_Courses/_enrolled_users/when_using_valid_token/.yml
229
- - spec/cassettes/MoodleRb_Courses/_grade_items/when_using_invalid_token/.yml
230
- - spec/cassettes/MoodleRb_Courses/_grade_items/when_using_valid_token/.yml
231
- - spec/cassettes/MoodleRb_Courses/_index/.yml
232
- - spec/cassettes/MoodleRb_Courses/_index/when_using_invalid_token/.yml
233
- - spec/cassettes/MoodleRb_Courses/_module/when_using_invalid_token/.yml
234
- - spec/cassettes/MoodleRb_Courses/_module/when_using_valid_token/.yml
235
- - spec/cassettes/MoodleRb_Courses/_search/.yml
236
- - spec/cassettes/MoodleRb_Courses/_search/when_using_invalid_token/.yml
237
- - spec/cassettes/MoodleRb_Courses/_show/.yml
238
- - spec/cassettes/MoodleRb_Courses/_show/when_using_invalid_token/.yml
239
- - spec/cassettes/MoodleRb_Enrolments/_create/.yml
240
- - spec/cassettes/MoodleRb_Enrolments/_create/when_user_or_course_id_is_invalid/.yml
241
- - spec/cassettes/MoodleRb_Enrolments/_destroy/.yml
242
- - spec/cassettes/MoodleRb_Enrolments/_destroy/when_user_or_course_id_is_invalid/.yml
243
- - spec/cassettes/MoodleRb_Grades/_by_assignment/.yml
244
- - spec/cassettes/MoodleRb_Grades/_by_course/.yml
245
- - spec/cassettes/MoodleRb_Grades/_by_course/when_invalid_parameters/.yml
246
- - spec/cassettes/MoodleRb_Users/_create/.yml
247
- - spec/cassettes/MoodleRb_Users/_create/when_missing_required_parameters/.yml
248
- - spec/cassettes/MoodleRb_Users/_destroy/.yml
249
- - spec/cassettes/MoodleRb_Users/_destroy/when_id_does_not_exist/.yml
250
- - spec/cassettes/MoodleRb_Users/_destroy/when_using_invalid_token/.yml
251
- - spec/cassettes/MoodleRb_Users/_enrolled_courses/.yml
252
- - spec/cassettes/MoodleRb_Users/_enrolled_courses/when_using_invalid_token/.yml
253
- - spec/cassettes/MoodleRb_Users/_search/.yml
254
- - spec/cassettes/MoodleRb_Users/_search/when_using_invalid_token/.yml
255
- - spec/cassettes/MoodleRb_Users/_search_identity/.yml
256
- - spec/cassettes/MoodleRb_Users/_search_identity/when_using_invalid_token/.yml
257
- - spec/cassettes/MoodleRb_Users/_show/.yml
258
- - spec/cassettes/MoodleRb_Users/_show/when_using_invalid_token/.yml
259
- - spec/cassettes/MoodleRb_Users/_update/.yml
260
- - spec/cassettes/MoodleRb_Users/_update/when_using_invalid_token/.yml
151
+ - spec/lib/moodle_rb_spec.rb
152
+ - spec/lib/moodle_rb/grades_spec.rb
153
+ - spec/lib/moodle_rb/error_spec.rb
154
+ - spec/lib/moodle_rb/enrolments_spec.rb
155
+ - spec/lib/moodle_rb/courses_spec.rb
261
156
  - spec/lib/moodle_rb/categories_spec.rb
262
157
  - spec/lib/moodle_rb/client_spec.rb
263
- - spec/lib/moodle_rb/courses_spec.rb
264
- - spec/lib/moodle_rb/enrolments_spec.rb
265
- - spec/lib/moodle_rb/error_spec.rb
266
- - spec/lib/moodle_rb/grades_spec.rb
267
- - spec/lib/moodle_rb/users_spec.rb
268
158
  - spec/lib/moodle_rb/utility_spec.rb
269
- - spec/lib/moodle_rb_spec.rb
159
+ - spec/lib/moodle_rb/users_spec.rb
270
160
  - spec/spec_helper.rb
@@ -1,36 +0,0 @@
1
- # This workflow uses actions that are not certified by GitHub.
2
- # They are provided by a third-party and are governed by
3
- # separate terms of service, privacy policy, and support
4
- # documentation.
5
- # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
- # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
-
8
- name: Build
9
-
10
- on:
11
- push:
12
- branches: [ develop ]
13
- pull_request:
14
- branches: [ develop ]
15
-
16
- jobs:
17
- test:
18
-
19
- runs-on: ubuntu-latest
20
- strategy:
21
- matrix:
22
- ruby-version: ['2.3']
23
-
24
- steps:
25
- - uses: actions/checkout@v2
26
- - name: Set up Ruby
27
- # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
28
- # change this to (see https://github.com/ruby/setup-ruby#versioning):
29
- # uses: ruby/setup-ruby@v1
30
- uses: ruby/setup-ruby@v1
31
- with:
32
- ruby-version: ${{ matrix.ruby-version }}
33
- bundler: 1.17.3
34
- bundler-cache: true # runs 'bundle install' and caches installed gems automatically
35
- - name: Run tests
36
- run: bundle exec rspec spec
@@ -1,27 +0,0 @@
1
- name: Publish
2
-
3
- on:
4
- release:
5
- types: [published]
6
-
7
- jobs:
8
- build:
9
- name: Build + Publish
10
- runs-on: ubuntu-latest
11
- permissions:
12
- contents: read
13
- packages: write
14
-
15
- steps:
16
- - uses: actions/checkout@v2
17
- - name: Set up Ruby 2.7
18
- uses: ruby/setup-ruby@v1
19
- with:
20
- ruby-version: '2.7'
21
-
22
- - name: Publish to RubyGems
23
- run: |
24
- gem build *.gemspec
25
- gem push *.gem
26
- env:
27
- GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
data/.gitignore DELETED
@@ -1,35 +0,0 @@
1
- *.gem
2
- *.rbc
3
- /.config
4
- /coverage/
5
- /InstalledFiles
6
- /pkg/
7
- /spec/reports/
8
- /test/tmp/
9
- /test/version_tmp/
10
- /tmp/
11
-
12
- ## Specific to RubyMotion:
13
- .dat*
14
- .repl_history
15
- build/
16
-
17
- ## Documentation cache and generated files:
18
- /.yardoc/
19
- /_yardoc/
20
- /doc/
21
- /rdoc/
22
-
23
- ## Environment normalisation:
24
- /.bundle/
25
- /vendor/bundle
26
- /lib/bundler/man/
27
-
28
- # for a library or gem, you might want to ignore these files since the code is
29
- # intended to run in multiple environments; otherwise, check them in:
30
- Gemfile.lock
31
- .ruby-version
32
- .ruby-gemset
33
-
34
- # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
35
- .rvmrc
data/.travis.yml DELETED
@@ -1,9 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 1.8.7
4
- cache:
5
- - bundler
6
- - apt
7
- bundler_args: -j4 --quiet
8
- script:
9
- - bundle exec rspec
data/Dockerfile DELETED
@@ -1,10 +0,0 @@
1
- FROM ruby:2.3-slim
2
-
3
- RUN apt-get update -y && apt-get install -y git
4
-
5
- WORKDIR /app
6
- ADD . .
7
- RUN bundle install
8
-
9
- # ENV MOODLE_URL=http://localhost:8888/moodle29/
10
- # ENV MOODLE_TOKEN=87b95af2df709fa60b395b5c59a3fc2e
data/Gemfile DELETED
@@ -1,2 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec
data/docker-compose.yml DELETED
@@ -1,6 +0,0 @@
1
- version: '2'
2
- services:
3
- app:
4
- build: .
5
- volumes:
6
- - .:/app
data/moodle_rb.gemspec DELETED
@@ -1,26 +0,0 @@
1
- lib = File.expand_path('../lib', __FILE__)
2
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require 'moodle_rb/version'
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = 'moodle_rb'
7
- spec.version = MoodleRb::VERSION
8
- spec.authors = ['Sam Giffney']
9
- spec.email = ['samg@jobready.com.au']
10
- spec.summary = %q{ A Ruby client for the Moodle API }
11
- spec.homepage = 'https://github.com/jobready/moodle-rb'
12
- spec.license = 'MIT'
13
-
14
- spec.files = `git ls-files -z`.split("\x0")
15
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
16
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
- spec.require_paths = ['lib']
18
-
19
- spec.add_development_dependency 'bundler', '~> 1.3'
20
- spec.add_development_dependency 'rake', '~> 0'
21
- spec.add_development_dependency 'rspec', '~> 3.0'
22
- spec.add_development_dependency 'webmock', '~> 1.24.6'
23
- spec.add_development_dependency 'vcr', '~> 2.9'
24
-
25
- spec.add_dependency 'httparty', '>= 0.11.0'
26
- end
@@ -1,39 +0,0 @@
1
- ---
2
- recorded_with: VCR 2.9.3
3
- http_interactions:
4
- - request:
5
- method: post
6
- uri: http://localhost:8888/moodle28/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_course_create_categories&wstoken=60fc9c9415259404795094957e4ab32f
7
- body:
8
- string: categories[0][description]=&categories[0][idnumber]=&categories[0][parent]=0&categories[0][name]=Test%20category
9
- headers: {}
10
-
11
- response:
12
- status:
13
- code: 200
14
- message: OK
15
- headers:
16
- Server:
17
- - Apache/2.2.29 (Unix) mod_fastcgi/2.4.6 mod_wsgi/3.4 Python/2.7.8 PHP/5.6.2 mod_ssl/2.2.29 OpenSSL/0.9.8zd DAV/2 mod_perl/2.0.8 Perl/v5.20.0
18
- Cache-Control:
19
- - private, must-revalidate, pre-check=0, post-check=0, max-age=0
20
- Pragma:
21
- - no-cache
22
- Date:
23
- - Sun, 12 Apr 2015 00:40:13 GMT
24
- Content-Type:
25
- - application/json
26
- Expires:
27
- - Thu, 01 Jan 1970 00:00:00 GMT
28
- Access-Control-Allow-Origin:
29
- - "*"
30
- Content-Length:
31
- - "33"
32
- X-Powered-By:
33
- - PHP/5.6.2
34
- Accept-Ranges:
35
- - none
36
- body:
37
- string: "[{\"id\":5,\"name\":\"Test category\"}]"
38
- http_version:
39
- recorded_at: Sun, 12 Apr 2015 00:40:13 GMT
@@ -1,39 +0,0 @@
1
- ---
2
- recorded_with: VCR 2.9.3
3
- http_interactions:
4
- - request:
5
- method: post
6
- uri: http://localhost:8888/moodle28/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_course_create_categories&wstoken=60fc9c9415259404795094957e4ab32f
7
- body:
8
- string: categories[0][description]=&categories[0][idnumber]=CAT101&categories[0][parent]=0&categories[0][name]=Test%20category
9
- headers: {}
10
-
11
- response:
12
- status:
13
- code: 200
14
- message: OK
15
- headers:
16
- Server:
17
- - Apache/2.2.29 (Unix) mod_fastcgi/2.4.6 mod_wsgi/3.4 Python/2.7.8 PHP/5.6.2 mod_ssl/2.2.29 OpenSSL/0.9.8zd DAV/2 mod_perl/2.0.8 Perl/v5.20.0
18
- Cache-Control:
19
- - private, must-revalidate, pre-check=0, post-check=0, max-age=0
20
- Pragma:
21
- - no-cache
22
- Date:
23
- - Sun, 12 Apr 2015 00:40:13 GMT
24
- Content-Type:
25
- - application/json
26
- Expires:
27
- - Thu, 01 Jan 1970 00:00:00 GMT
28
- Access-Control-Allow-Origin:
29
- - "*"
30
- Content-Length:
31
- - "127"
32
- X-Powered-By:
33
- - PHP/5.6.2
34
- Accept-Ranges:
35
- - none
36
- body:
37
- string: "{\"exception\":\"moodle_exception\",\"errorcode\":\"categoryidnumbertaken\",\"message\":\"ID number is already used for another category\"}"
38
- http_version:
39
- recorded_at: Sun, 12 Apr 2015 00:40:13 GMT
@@ -1,39 +0,0 @@
1
- ---
2
- recorded_with: VCR 2.9.3
3
- http_interactions:
4
- - request:
5
- method: post
6
- uri: http://localhost:8888/moodle28/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_course_create_categories&wstoken=
7
- body:
8
- string: categories[0][description]=&categories[0][parent]=0&categories[0][name]=_&categories[0][idnumber]=
9
- headers: {}
10
-
11
- response:
12
- status:
13
- code: 200
14
- message: OK
15
- headers:
16
- Accept-Ranges:
17
- - none
18
- X-Powered-By:
19
- - PHP/5.6.2
20
- Content-Type:
21
- - application/json
22
- Date:
23
- - Mon, 20 Jun 2016 23:22:31 GMT
24
- Server:
25
- - Apache/2.2.29 (Unix) mod_fastcgi/2.4.6 mod_wsgi/3.4 Python/2.7.8 PHP/5.6.2 mod_ssl/2.2.29 OpenSSL/0.9.8zg DAV/2 mod_perl/2.0.8 Perl/v5.20.0
26
- Content-Length:
27
- - "103"
28
- Expires:
29
- - Thu, 01 Jan 1970 00:00:00 GMT
30
- Pragma:
31
- - no-cache
32
- Cache-Control:
33
- - private, must-revalidate, pre-check=0, post-check=0, max-age=0
34
- Access-Control-Allow-Origin:
35
- - "*"
36
- body:
37
- string: "{\"exception\":\"moodle_exception\",\"errorcode\":\"invalidtoken\",\"message\":\"Invalid token - token not found\"}"
38
- http_version:
39
- recorded_at: Mon, 20 Jun 2016 23:22:31 GMT