moodle_rb 1.0.4 → 1.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.
- checksums.yaml +7 -0
- data/.github/workflows/build.yml +36 -0
- data/.github/workflows/publish.yml +27 -0
- data/Dockerfile +10 -0
- data/README.md +78 -2
- data/docker-compose.yml +6 -0
- data/lib/moodle_rb/courses.rb +48 -2
- data/lib/moodle_rb/enrolments.rb +30 -1
- data/lib/moodle_rb/users.rb +16 -0
- data/lib/moodle_rb/version.rb +1 -1
- data/moodle_rb.gemspec +2 -3
- data/spec/cassettes/MoodleRb_Categories/_create/.yml +19 -19
- data/spec/cassettes/MoodleRb_Categories/_create/when_validation_fails/.yml +19 -19
- data/spec/cassettes/MoodleRb_Categories/_destroy/when_using_invalid_token/.yml +20 -20
- data/spec/cassettes/MoodleRb_Categories/_destroy/when_using_valid_token/.yml +39 -38
- data/spec/cassettes/MoodleRb_Categories/_index/.yml +19 -19
- data/spec/cassettes/MoodleRb_Categories/_index/when_using_invalid_token/.yml +20 -20
- data/spec/cassettes/MoodleRb_Categories/_show/when_using_invalid_token/.yml +20 -20
- data/spec/cassettes/MoodleRb_Client/_site_info/when_invalid_token/.yml +20 -20
- data/spec/cassettes/MoodleRb_Client/_site_info/when_valid_token/.yml +19 -19
- data/spec/cassettes/MoodleRb_Courses/_contents/when_using_invalid_token/.yml +52 -0
- data/spec/cassettes/MoodleRb_Courses/_contents/when_using_valid_token/.yml +52 -0
- data/spec/cassettes/MoodleRb_Courses/_create/.yml +19 -19
- data/spec/cassettes/MoodleRb_Courses/_create/when_validation_fails/.yml +36 -36
- data/spec/cassettes/MoodleRb_Courses/_destroy/when_using_invalid_token/.yml +20 -20
- data/spec/cassettes/MoodleRb_Courses/_destroy/when_using_valid_token/.yml +38 -38
- data/spec/cassettes/MoodleRb_Courses/_destroy/when_using_valid_token/when_using_invalid_course_id/.yml +20 -20
- data/spec/cassettes/MoodleRb_Courses/_enrolled_users/when_using_invalid_token/.yml +20 -20
- data/spec/cassettes/MoodleRb_Courses/_enrolled_users/when_using_valid_token/.yml +39 -39
- data/spec/cassettes/MoodleRb_Courses/_grade_items/when_using_invalid_token/.yml +52 -0
- data/spec/cassettes/MoodleRb_Courses/_grade_items/when_using_valid_token/.yml +56 -0
- data/spec/cassettes/MoodleRb_Courses/_index/.yml +19 -19
- data/spec/cassettes/MoodleRb_Courses/_index/when_using_invalid_token/.yml +20 -20
- data/spec/cassettes/MoodleRb_Courses/_module/when_using_invalid_token/.yml +52 -0
- data/spec/cassettes/MoodleRb_Courses/_module/when_using_valid_token/.yml +51 -0
- data/spec/cassettes/MoodleRb_Courses/_show/.yml +19 -19
- data/spec/cassettes/MoodleRb_Courses/_show/when_using_invalid_token/.yml +20 -20
- data/spec/cassettes/MoodleRb_Enrolments/_create/.yml +19 -19
- data/spec/cassettes/MoodleRb_Enrolments/_create/when_user_or_course_id_is_invalid/.yml +19 -19
- data/spec/cassettes/MoodleRb_Enrolments/_destroy/.yml +51 -0
- data/spec/cassettes/MoodleRb_Enrolments/_destroy/when_user_or_course_id_is_invalid/.yml +52 -0
- data/spec/cassettes/MoodleRb_Grades/_by_assignment/.yml +19 -19
- data/spec/cassettes/MoodleRb_Grades/_by_course/.yml +19 -19
- data/spec/cassettes/MoodleRb_Grades/_by_course/when_invalid_parameters/.yml +19 -19
- data/spec/cassettes/MoodleRb_Users/_create/.yml +19 -19
- data/spec/cassettes/MoodleRb_Users/_create/when_missing_required_parameters/.yml +19 -19
- data/spec/cassettes/MoodleRb_Users/_destroy/.yml +19 -19
- data/spec/cassettes/MoodleRb_Users/_destroy/when_id_does_not_exist/.yml +19 -19
- data/spec/cassettes/MoodleRb_Users/_destroy/when_using_invalid_token/.yml +20 -20
- data/spec/cassettes/MoodleRb_Users/_enrolled_courses/.yml +19 -19
- data/spec/cassettes/MoodleRb_Users/_enrolled_courses/when_using_invalid_token/.yml +20 -20
- data/spec/cassettes/MoodleRb_Users/_search/.yml +21 -21
- data/spec/cassettes/MoodleRb_Users/_search/when_using_invalid_token/.yml +20 -20
- data/spec/cassettes/MoodleRb_Users/_search_identity/.yml +51 -0
- data/spec/cassettes/MoodleRb_Users/_search_identity/when_using_invalid_token/.yml +52 -0
- data/spec/cassettes/MoodleRb_Users/_show/.yml +19 -19
- data/spec/cassettes/MoodleRb_Users/_show/when_using_invalid_token/.yml +20 -20
- data/spec/cassettes/MoodleRb_Users/_update/.yml +20 -20
- data/spec/cassettes/MoodleRb_Users/_update/when_using_invalid_token/.yml +20 -20
- data/spec/lib/moodle_rb/categories_spec.rb +6 -6
- data/spec/lib/moodle_rb/client_spec.rb +3 -3
- data/spec/lib/moodle_rb/courses_spec.rb +88 -8
- data/spec/lib/moodle_rb/enrolments_spec.rb +39 -4
- data/spec/lib/moodle_rb/grades_spec.rb +4 -4
- data/spec/lib/moodle_rb/users_spec.rb +37 -8
- data/spec/lib/moodle_rb_spec.rb +2 -2
- metadata +118 -136
@@ -0,0 +1,52 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://localhost:8888/moodle28/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_user_search_identity&wstoken=
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: query=moodle_student%40mailinator.com
|
9
|
+
headers: {}
|
10
|
+
response:
|
11
|
+
status:
|
12
|
+
code: 200
|
13
|
+
message: OK
|
14
|
+
headers:
|
15
|
+
Accept-Ranges:
|
16
|
+
- bytes
|
17
|
+
- none
|
18
|
+
Access-Control-Allow-Origin:
|
19
|
+
- "*"
|
20
|
+
Age:
|
21
|
+
- '0'
|
22
|
+
Cache-Control:
|
23
|
+
- private, must-revalidate, pre-check=0, post-check=0, max-age=0
|
24
|
+
Content-Type:
|
25
|
+
- application/json
|
26
|
+
Date:
|
27
|
+
- Tue, 11 Jan 2022 21:28:57 GMT
|
28
|
+
Expires:
|
29
|
+
- Thu, 01 Jan 1970 00:00:00 GMT
|
30
|
+
Pragma:
|
31
|
+
- no-cache
|
32
|
+
Server:
|
33
|
+
- Moodle
|
34
|
+
X-Cache:
|
35
|
+
- MISS
|
36
|
+
X-Clacks-Overhead:
|
37
|
+
- GNU Terry Pratchett
|
38
|
+
X-Ec2-Instance-Id:
|
39
|
+
- i-0afd4744d7a60c5d7
|
40
|
+
X-Powered-By:
|
41
|
+
- Moodle Ninjas
|
42
|
+
Content-Length:
|
43
|
+
- '103'
|
44
|
+
Connection:
|
45
|
+
- keep-alive
|
46
|
+
body:
|
47
|
+
encoding: UTF-8
|
48
|
+
string: '{"exception":"moodle_exception","errorcode":"invalidtoken","message":"Invalid
|
49
|
+
token - token not found"}'
|
50
|
+
http_version:
|
51
|
+
recorded_at: Tue, 11 Jan 2022 21:28:24 GMT
|
52
|
+
recorded_with: VCR 2.9.3
|
@@ -1,39 +1,39 @@
|
|
1
|
-
---
|
1
|
+
---
|
2
2
|
recorded_with: VCR 2.9.3
|
3
|
-
http_interactions:
|
4
|
-
- request:
|
3
|
+
http_interactions:
|
4
|
+
- request:
|
5
5
|
method: post
|
6
6
|
uri: http://localhost:8888/moodle28/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_user_get_users&wstoken=60fc9c9415259404795094957e4ab32f
|
7
|
-
body:
|
7
|
+
body:
|
8
8
|
string: criteria[0][key]=id&criteria[0][value]=5
|
9
9
|
headers: {}
|
10
10
|
|
11
|
-
response:
|
12
|
-
status:
|
11
|
+
response:
|
12
|
+
status:
|
13
13
|
code: 200
|
14
14
|
message: OK
|
15
|
-
headers:
|
16
|
-
Server:
|
15
|
+
headers:
|
16
|
+
Server:
|
17
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
|
-
Pragma:
|
18
|
+
Pragma:
|
19
19
|
- no-cache
|
20
|
-
Date:
|
20
|
+
Date:
|
21
21
|
- Sun, 12 Apr 2015 01:01:44 GMT
|
22
|
-
Access-Control-Allow-Origin:
|
22
|
+
Access-Control-Allow-Origin:
|
23
23
|
- "*"
|
24
|
-
Content-Length:
|
24
|
+
Content-Length:
|
25
25
|
- "353"
|
26
|
-
X-Powered-By:
|
26
|
+
X-Powered-By:
|
27
27
|
- PHP/5.6.2
|
28
|
-
Expires:
|
28
|
+
Expires:
|
29
29
|
- Thu, 01 Jan 1970 00:00:00 GMT
|
30
|
-
Cache-Control:
|
30
|
+
Cache-Control:
|
31
31
|
- private, must-revalidate, pre-check=0, post-check=0, max-age=0
|
32
|
-
Content-Type:
|
32
|
+
Content-Type:
|
33
33
|
- application/json
|
34
|
-
Accept-Ranges:
|
34
|
+
Accept-Ranges:
|
35
35
|
- none
|
36
|
-
body:
|
36
|
+
body:
|
37
37
|
string: "{\"users\":[{\"id\":5,\"firstname\":\"Austin\",\"lastname\":\"Powers\",\"fullname\":\"Austin Powers\",\"email\":\"austinp1@jobready.com.au\",\"firstaccess\":0,\"lastaccess\":0,\"profileimageurlsmall\":\"http:\\/\\/localhost:8888\\/moodle28\\/pluginfile.php\\/69\\/user\\/icon\\/f2\",\"profileimageurl\":\"http:\\/\\/localhost:8888\\/moodle28\\/pluginfile.php\\/69\\/user\\/icon\\/f1\"}],\"warnings\":[]}"
|
38
|
-
http_version:
|
38
|
+
http_version:
|
39
39
|
recorded_at: Sun, 12 Apr 2015 01:01:44 GMT
|
@@ -1,39 +1,39 @@
|
|
1
|
-
---
|
1
|
+
---
|
2
2
|
recorded_with: VCR 2.9.3
|
3
|
-
http_interactions:
|
4
|
-
- request:
|
3
|
+
http_interactions:
|
4
|
+
- request:
|
5
5
|
method: post
|
6
|
-
uri: http://localhost:8888/
|
7
|
-
body:
|
6
|
+
uri: http://localhost:8888/moodle28/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_user_get_users&wstoken=
|
7
|
+
body:
|
8
8
|
string: criteria[0][value]=5&criteria[0][key]=id
|
9
9
|
headers: {}
|
10
10
|
|
11
|
-
response:
|
12
|
-
status:
|
11
|
+
response:
|
12
|
+
status:
|
13
13
|
code: 200
|
14
14
|
message: OK
|
15
|
-
headers:
|
16
|
-
Cache-Control:
|
15
|
+
headers:
|
16
|
+
Cache-Control:
|
17
17
|
- private, must-revalidate, pre-check=0, post-check=0, max-age=0
|
18
|
-
Pragma:
|
18
|
+
Pragma:
|
19
19
|
- no-cache
|
20
|
-
Server:
|
20
|
+
Server:
|
21
21
|
- 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
|
22
|
-
Accept-Ranges:
|
22
|
+
Accept-Ranges:
|
23
23
|
- none
|
24
|
-
Content-Type:
|
24
|
+
Content-Type:
|
25
25
|
- application/json
|
26
|
-
Date:
|
26
|
+
Date:
|
27
27
|
- Mon, 20 Jun 2016 22:30:45 GMT
|
28
|
-
Expires:
|
28
|
+
Expires:
|
29
29
|
- Thu, 01 Jan 1970 00:00:00 GMT
|
30
|
-
Access-Control-Allow-Origin:
|
30
|
+
Access-Control-Allow-Origin:
|
31
31
|
- "*"
|
32
|
-
Content-Length:
|
32
|
+
Content-Length:
|
33
33
|
- "103"
|
34
|
-
X-Powered-By:
|
34
|
+
X-Powered-By:
|
35
35
|
- PHP/5.6.2
|
36
|
-
body:
|
36
|
+
body:
|
37
37
|
string: "{\"exception\":\"moodle_exception\",\"errorcode\":\"invalidtoken\",\"message\":\"Invalid token - token not found\"}"
|
38
|
-
http_version:
|
38
|
+
http_version:
|
39
39
|
recorded_at: Mon, 20 Jun 2016 22:30:45 GMT
|
@@ -1,39 +1,39 @@
|
|
1
|
-
---
|
2
|
-
http_interactions:
|
3
|
-
- request:
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
4
|
method: post
|
5
|
-
uri: http://localhost:8888/
|
6
|
-
body:
|
5
|
+
uri: http://localhost:8888/moodle28/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_user_update_users&wstoken=60fc9c9415259404795094957e4ab32f
|
6
|
+
body:
|
7
7
|
string: users[0][email]=samg%40jobready.com.au&users[0][id]=4
|
8
8
|
headers: {}
|
9
9
|
|
10
|
-
response:
|
11
|
-
status:
|
10
|
+
response:
|
11
|
+
status:
|
12
12
|
code: 200
|
13
13
|
message: OK
|
14
|
-
headers:
|
15
|
-
Expires:
|
14
|
+
headers:
|
15
|
+
Expires:
|
16
16
|
- Thu, 01 Jan 1970 00:00:00 GMT
|
17
|
-
X-Powered-By:
|
17
|
+
X-Powered-By:
|
18
18
|
- PHP/5.6.2
|
19
|
-
Content-Type:
|
19
|
+
Content-Type:
|
20
20
|
- application/json
|
21
|
-
Content-Length:
|
21
|
+
Content-Length:
|
22
22
|
- "4"
|
23
|
-
Date:
|
23
|
+
Date:
|
24
24
|
- Wed, 08 Jun 2016 06:40:27 GMT
|
25
|
-
Access-Control-Allow-Origin:
|
25
|
+
Access-Control-Allow-Origin:
|
26
26
|
- "*"
|
27
|
-
Accept-Ranges:
|
27
|
+
Accept-Ranges:
|
28
28
|
- none
|
29
|
-
Pragma:
|
29
|
+
Pragma:
|
30
30
|
- no-cache
|
31
|
-
Server:
|
31
|
+
Server:
|
32
32
|
- 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
|
33
|
-
Cache-Control:
|
33
|
+
Cache-Control:
|
34
34
|
- private, must-revalidate, pre-check=0, post-check=0, max-age=0
|
35
|
-
body:
|
35
|
+
body:
|
36
36
|
string: "null"
|
37
|
-
http_version:
|
37
|
+
http_version:
|
38
38
|
recorded_at: Wed, 08 Jun 2016 06:40:27 GMT
|
39
39
|
recorded_with: VCR 2.9.3
|
@@ -1,39 +1,39 @@
|
|
1
|
-
---
|
2
|
-
http_interactions:
|
3
|
-
- request:
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
4
|
method: post
|
5
|
-
uri: http://localhost:8888/
|
6
|
-
body:
|
5
|
+
uri: http://localhost:8888/moodle28/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_user_update_users&wstoken=
|
6
|
+
body:
|
7
7
|
string: users[0][email]=&users[0][id]=4
|
8
8
|
headers: {}
|
9
9
|
|
10
|
-
response:
|
11
|
-
status:
|
10
|
+
response:
|
11
|
+
status:
|
12
12
|
code: 200
|
13
13
|
message: OK
|
14
|
-
headers:
|
15
|
-
X-Powered-By:
|
14
|
+
headers:
|
15
|
+
X-Powered-By:
|
16
16
|
- PHP/5.6.2
|
17
|
-
Accept-Ranges:
|
17
|
+
Accept-Ranges:
|
18
18
|
- none
|
19
|
-
Server:
|
19
|
+
Server:
|
20
20
|
- 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
|
21
|
-
Pragma:
|
21
|
+
Pragma:
|
22
22
|
- no-cache
|
23
|
-
Content-Type:
|
23
|
+
Content-Type:
|
24
24
|
- application/json
|
25
|
-
Access-Control-Allow-Origin:
|
25
|
+
Access-Control-Allow-Origin:
|
26
26
|
- "*"
|
27
|
-
Expires:
|
27
|
+
Expires:
|
28
28
|
- Thu, 01 Jan 1970 00:00:00 GMT
|
29
|
-
Date:
|
29
|
+
Date:
|
30
30
|
- Mon, 20 Jun 2016 22:39:11 GMT
|
31
|
-
Cache-Control:
|
31
|
+
Cache-Control:
|
32
32
|
- private, must-revalidate, pre-check=0, post-check=0, max-age=0
|
33
|
-
Content-Length:
|
33
|
+
Content-Length:
|
34
34
|
- "103"
|
35
|
-
body:
|
35
|
+
body:
|
36
36
|
string: "{\"exception\":\"moodle_exception\",\"errorcode\":\"invalidtoken\",\"message\":\"Invalid token - token not found\"}"
|
37
|
-
http_version:
|
37
|
+
http_version:
|
38
38
|
recorded_at: Mon, 20 Jun 2016 22:39:11 GMT
|
39
39
|
recorded_with: VCR 2.9.3
|
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe MoodleRb::Categories do
|
4
|
-
let(:url) { ENV['MOODLE_URL'] || 'localhost' }
|
5
|
-
let(:token) { ENV['MOODLE_TOKEN'] || '' }
|
4
|
+
let(:url) { ENV['MOODLE_URL'] || 'localhost:8888/moodle28' }
|
5
|
+
let(:token) { ENV['MOODLE_TOKEN'] || '60fc9c9415259404795094957e4ab32f' }
|
6
6
|
let(:category_moodle_rb) { MoodleRb.new(token, url).categories }
|
7
7
|
|
8
8
|
describe '#index', :vcr => {
|
9
|
-
:match_requests_on => [:body, :
|
9
|
+
:match_requests_on => [:body, :path], :record => :once
|
10
10
|
} do
|
11
11
|
let(:result) { category_moodle_rb.index }
|
12
12
|
|
@@ -27,7 +27,7 @@ describe MoodleRb::Categories do
|
|
27
27
|
end
|
28
28
|
|
29
29
|
describe '#create', :vcr => {
|
30
|
-
:match_requests_on => [:
|
30
|
+
:match_requests_on => [:path], :record => :once
|
31
31
|
} do
|
32
32
|
let(:params) do
|
33
33
|
{
|
@@ -60,7 +60,7 @@ describe MoodleRb::Categories do
|
|
60
60
|
end
|
61
61
|
|
62
62
|
describe '#show', :vcr => {
|
63
|
-
:match_requests_on => [:
|
63
|
+
:match_requests_on => [:path], :record => :once
|
64
64
|
} do
|
65
65
|
let(:id) { 1 }
|
66
66
|
let(:result) { category_moodle_rb.show(id) }
|
@@ -82,7 +82,7 @@ describe MoodleRb::Categories do
|
|
82
82
|
end
|
83
83
|
|
84
84
|
describe '#destroy', :vcr => {
|
85
|
-
:match_requests_on => [:
|
85
|
+
:match_requests_on => [:path], :record => :once
|
86
86
|
} do
|
87
87
|
context 'when using valid token' do
|
88
88
|
let!(:id) { category_moodle_rb.create(:name => '_')['id'] }
|
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe MoodleRb::Client do
|
4
|
-
let(:url) { ENV['MOODLE_URL'] || 'localhost' }
|
5
|
-
let(:token) { ENV['MOODLE_TOKEN'] || '' }
|
4
|
+
let(:url) { ENV['MOODLE_URL'] || 'localhost:8888/moodle28' }
|
5
|
+
let(:token) { ENV['MOODLE_TOKEN'] || '60fc9c9415259404795094957e4ab32f' }
|
6
6
|
let(:moodle_rb) { MoodleRb.new(token, url) }
|
7
7
|
|
8
8
|
describe '#site_info', :vcr => {
|
9
|
-
:match_requests_on => [:body, :
|
9
|
+
:match_requests_on => [:body, :path], :record => :once
|
10
10
|
} do
|
11
11
|
let(:result) { moodle_rb.site_info }
|
12
12
|
|
@@ -1,20 +1,22 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe MoodleRb::Courses do
|
4
|
-
let(:url) { ENV['MOODLE_URL'] || 'localhost' }
|
5
|
-
let(:token) { ENV['MOODLE_TOKEN'] || '' }
|
4
|
+
let(:url) { ENV['MOODLE_URL'] || 'localhost:8888/moodle28' }
|
5
|
+
let(:token) { ENV['MOODLE_TOKEN'] || '60fc9c9415259404795094957e4ab32f' }
|
6
6
|
let(:course_moodle_rb) { MoodleRb.new(token, url).courses }
|
7
7
|
let(:params) do
|
8
8
|
{
|
9
9
|
:full_name => 'Test Course',
|
10
10
|
:short_name => 'TestC1',
|
11
11
|
:parent_category => 1,
|
12
|
-
:idnumber => 'ExtRef'
|
12
|
+
:idnumber => 'ExtRef',
|
13
|
+
:start_date => 1646312400,
|
14
|
+
:end_date => 1646398800
|
13
15
|
}
|
14
16
|
end
|
15
17
|
|
16
18
|
describe '#index', :vcr => {
|
17
|
-
:match_requests_on => [:body, :
|
19
|
+
:match_requests_on => [:body, :path], :record => :once
|
18
20
|
} do
|
19
21
|
let(:result) { course_moodle_rb.index }
|
20
22
|
|
@@ -35,7 +37,7 @@ describe MoodleRb::Courses do
|
|
35
37
|
end
|
36
38
|
|
37
39
|
describe '#create', :vcr => {
|
38
|
-
:match_requests_on => [:
|
40
|
+
:match_requests_on => [:path], :record => :once
|
39
41
|
} do
|
40
42
|
let(:result) { course_moodle_rb.create(params) }
|
41
43
|
|
@@ -60,7 +62,7 @@ describe MoodleRb::Courses do
|
|
60
62
|
end
|
61
63
|
|
62
64
|
describe '#show', :vcr => {
|
63
|
-
:match_requests_on => [:
|
65
|
+
:match_requests_on => [:path], :record => :once
|
64
66
|
} do
|
65
67
|
let(:id) { 1 }
|
66
68
|
let(:result) { course_moodle_rb.show(id) }
|
@@ -82,7 +84,7 @@ describe MoodleRb::Courses do
|
|
82
84
|
end
|
83
85
|
|
84
86
|
describe '#destroy', :vcr => {
|
85
|
-
:match_requests_on => [:
|
87
|
+
:match_requests_on => [:path], :record => :once
|
86
88
|
} do
|
87
89
|
context 'when using valid token' do
|
88
90
|
let(:id) { course_moodle_rb.create(params)['id'] }
|
@@ -117,7 +119,7 @@ describe MoodleRb::Courses do
|
|
117
119
|
end
|
118
120
|
|
119
121
|
describe '#enrolled_users', :vcr => {
|
120
|
-
:match_requests_on => [:
|
122
|
+
:match_requests_on => [:path], :record => :once
|
121
123
|
} do
|
122
124
|
let(:course_id) { 8 }
|
123
125
|
|
@@ -146,4 +148,82 @@ describe MoodleRb::Courses do
|
|
146
148
|
end
|
147
149
|
end
|
148
150
|
end
|
151
|
+
|
152
|
+
describe '#grade_items', :vcr => {
|
153
|
+
:match_requests_on => [:path], :record => :once
|
154
|
+
} do
|
155
|
+
let(:course_id) { 5 }
|
156
|
+
|
157
|
+
context 'when using valid token' do
|
158
|
+
let(:result) { course_moodle_rb.grade_items(course_id) }
|
159
|
+
let(:user_grades) { result.first }
|
160
|
+
|
161
|
+
specify do
|
162
|
+
expect(result).to be_a Array
|
163
|
+
expect(user_grades).to have_key 'gradeitems'
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
context 'when using invalid token' do
|
168
|
+
let(:token) { '' }
|
169
|
+
specify do
|
170
|
+
expect{ course_moodle_rb.grade_items(course_id) }.to raise_error(
|
171
|
+
MoodleRb::MoodleError,
|
172
|
+
'Invalid token - token not found'
|
173
|
+
)
|
174
|
+
end
|
175
|
+
end
|
176
|
+
end
|
177
|
+
|
178
|
+
describe '#contents', :vcr => {
|
179
|
+
:match_requests_on => [:path], :record => :once
|
180
|
+
} do
|
181
|
+
let(:course_id) { 5 }
|
182
|
+
|
183
|
+
context 'when using valid token' do
|
184
|
+
let(:result) { course_moodle_rb.contents(course_id) }
|
185
|
+
let(:enrolment) { result.first }
|
186
|
+
|
187
|
+
specify do
|
188
|
+
expect(result).to be_a Hash
|
189
|
+
expect(result).to have_key 'modules'
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
context 'when using invalid token' do
|
194
|
+
let(:token) { '' }
|
195
|
+
specify do
|
196
|
+
expect{ course_moodle_rb.contents(course_id) }.to raise_error(
|
197
|
+
MoodleRb::MoodleError,
|
198
|
+
'Invalid token - token not found'
|
199
|
+
)
|
200
|
+
end
|
201
|
+
end
|
202
|
+
end
|
203
|
+
|
204
|
+
describe '#module', :vcr => {
|
205
|
+
:match_requests_on => [:path], :record => :once
|
206
|
+
} do
|
207
|
+
let(:course_module_id) { 21 }
|
208
|
+
|
209
|
+
context 'when using valid token' do
|
210
|
+
let(:result) { course_moodle_rb.module(course_module_id) }
|
211
|
+
|
212
|
+
specify do
|
213
|
+
expect(result).to be_a Hash
|
214
|
+
expect(result).to have_key 'name'
|
215
|
+
expect(result).to have_key 'gradepass'
|
216
|
+
end
|
217
|
+
end
|
218
|
+
|
219
|
+
context 'when using invalid token' do
|
220
|
+
let(:token) { '' }
|
221
|
+
specify do
|
222
|
+
expect{ course_moodle_rb.module(course_module_id) }.to raise_error(
|
223
|
+
MoodleRb::MoodleError,
|
224
|
+
'Invalid token - token not found'
|
225
|
+
)
|
226
|
+
end
|
227
|
+
end
|
228
|
+
end
|
149
229
|
end
|
@@ -1,17 +1,19 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe MoodleRb::Enrolments do
|
4
|
-
let(:url) { ENV['MOODLE_URL'] || 'localhost' }
|
5
|
-
let(:token) { ENV['MOODLE_TOKEN'] || '' }
|
4
|
+
let(:url) { ENV['MOODLE_URL'] || 'localhost:8888/moodle28' }
|
5
|
+
let(:token) { ENV['MOODLE_TOKEN'] || '60fc9c9415259404795094957e4ab32f' }
|
6
6
|
let(:enrolment_moodle_rb) { MoodleRb.new(token, url).enrolments }
|
7
7
|
|
8
8
|
describe '#create', :vcr => {
|
9
|
-
:match_requests_on => [:
|
9
|
+
:match_requests_on => [:path], :record => :once
|
10
10
|
} do
|
11
11
|
let(:params) do
|
12
12
|
{
|
13
13
|
:user_id => 3,
|
14
|
-
:course_id => 8
|
14
|
+
:course_id => 8,
|
15
|
+
:time_start => 1646312400,
|
16
|
+
:time_end => 1646398800
|
15
17
|
}
|
16
18
|
end
|
17
19
|
let(:result) { enrolment_moodle_rb.create(params) }
|
@@ -36,4 +38,37 @@ describe MoodleRb::Enrolments do
|
|
36
38
|
end
|
37
39
|
end
|
38
40
|
end
|
41
|
+
|
42
|
+
describe '#destroy', :vcr => {
|
43
|
+
:match_requests_on => [:path], :record => :once
|
44
|
+
} do
|
45
|
+
let(:params) do
|
46
|
+
{
|
47
|
+
:user_id => '7',
|
48
|
+
:course_id => '5'
|
49
|
+
}
|
50
|
+
end
|
51
|
+
|
52
|
+
let(:result) { enrolment_moodle_rb.destroy(params) }
|
53
|
+
|
54
|
+
specify do
|
55
|
+
expect(result).to eq true
|
56
|
+
end
|
57
|
+
|
58
|
+
context 'when user or course id is invalid' do
|
59
|
+
let(:params) do
|
60
|
+
{
|
61
|
+
:user_id => 9999,
|
62
|
+
:course_id => 9999
|
63
|
+
}
|
64
|
+
end
|
65
|
+
|
66
|
+
specify do
|
67
|
+
expect{ result }.to raise_error(
|
68
|
+
MoodleRb::MoodleError,
|
69
|
+
"Can't find data record in database table course."
|
70
|
+
)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
39
74
|
end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe MoodleRb::Grades do
|
4
|
-
let(:url) { ENV['MOODLE_URL'] || 'localhost' }
|
5
|
-
let(:token) { ENV['MOODLE_TOKEN'] || '' }
|
4
|
+
let(:url) { ENV['MOODLE_URL'] || 'localhost:8888/moodle28' }
|
5
|
+
let(:token) { ENV['MOODLE_TOKEN'] || '60fc9c9415259404795094957e4ab32f' }
|
6
6
|
let(:grade_moodle_rb) { MoodleRb.new(token, url).grades }
|
7
7
|
|
8
8
|
describe '#by_assignment', :vcr => {
|
9
|
-
:match_requests_on => [:
|
9
|
+
:match_requests_on => [:path], :record => :once
|
10
10
|
} do
|
11
11
|
let(:assignment_id) { 1 }
|
12
12
|
let(:result) { grade_moodle_rb.by_assignment(assignment_id) }
|
@@ -18,7 +18,7 @@ describe MoodleRb::Grades do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
describe '#by_course', :vcr => {
|
21
|
-
:match_requests_on => [:
|
21
|
+
:match_requests_on => [:path], :record => :once
|
22
22
|
} do
|
23
23
|
let(:course_id) { 8 }
|
24
24
|
let(:user_ids) { 5 }
|
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe MoodleRb::Users do
|
4
|
-
let(:url) { ENV['MOODLE_URL'] || 'localhost' }
|
5
|
-
let(:token) { ENV['MOODLE_TOKEN'] || '' }
|
4
|
+
let(:url) { ENV['MOODLE_URL'] || 'localhost:8888/moodle28' }
|
5
|
+
let(:token) { ENV['MOODLE_TOKEN'] || '60fc9c9415259404795094957e4ab32f' }
|
6
6
|
let(:user_moodle_rb) { MoodleRb.new(token, url).users }
|
7
7
|
|
8
8
|
describe '#create', :vcr => {
|
9
|
-
:match_requests_on => [:
|
9
|
+
:match_requests_on => [:path], :record => :once
|
10
10
|
} do
|
11
11
|
let(:params) do
|
12
12
|
{
|
@@ -43,7 +43,7 @@ describe MoodleRb::Users do
|
|
43
43
|
end
|
44
44
|
|
45
45
|
describe '#show', :vcr => {
|
46
|
-
:match_requests_on => [:
|
46
|
+
:match_requests_on => [:path], :record => :once
|
47
47
|
} do
|
48
48
|
let(:id) { 5 }
|
49
49
|
let(:result) { user_moodle_rb.show(id) }
|
@@ -65,7 +65,7 @@ describe MoodleRb::Users do
|
|
65
65
|
end
|
66
66
|
|
67
67
|
describe '#destroy', :vcr => {
|
68
|
-
:match_requests_on => [:
|
68
|
+
:match_requests_on => [:path], :record => :once
|
69
69
|
} do
|
70
70
|
let(:id) { 5 }
|
71
71
|
let(:result) { user_moodle_rb.destroy(id) }
|
@@ -96,7 +96,7 @@ describe MoodleRb::Users do
|
|
96
96
|
end
|
97
97
|
|
98
98
|
describe '#enrolled_courses', :vcr => {
|
99
|
-
:match_requests_on => [:
|
99
|
+
:match_requests_on => [:path], :record => :once
|
100
100
|
} do
|
101
101
|
let(:user_id) { 3 }
|
102
102
|
let(:result) { user_moodle_rb.enrolled_courses(user_id) }
|
@@ -119,7 +119,7 @@ describe MoodleRb::Users do
|
|
119
119
|
end
|
120
120
|
|
121
121
|
describe '#search', :vcr => {
|
122
|
-
:match_requests_on => [:
|
122
|
+
:match_requests_on => [:path], :record => :once
|
123
123
|
} do
|
124
124
|
let(:results) { user_moodle_rb.search({ :firstname => 'Guest%' }) }
|
125
125
|
|
@@ -140,8 +140,37 @@ describe MoodleRb::Users do
|
|
140
140
|
end
|
141
141
|
end
|
142
142
|
|
143
|
+
describe '#search_identity', :vcr => {
|
144
|
+
:match_requests_on => [:path], :record => :once
|
145
|
+
} do
|
146
|
+
let(:results) { user_moodle_rb.search_identity('moodle_student@mailinator.com') }
|
147
|
+
|
148
|
+
specify do
|
149
|
+
expect(results).to be_a Array
|
150
|
+
expect(results.first).to be_a Hash
|
151
|
+
expect(results.first['id']).to eq 25
|
152
|
+
expect(results.first['fullname']).to eq 'Moodle Student'
|
153
|
+
expect(results.first['extrafields'].first['name']).to eq 'idnumber'
|
154
|
+
expect(results.first['extrafields'].first['value']).to eq 'MS01'
|
155
|
+
expect(results.first['extrafields'].last['name']).to eq 'email'
|
156
|
+
expect(results.first['extrafields'].last['value']).to eq 'moodle_student@mailinator.com'
|
157
|
+
end
|
158
|
+
|
159
|
+
context 'when using invalid token' do
|
160
|
+
let(:token) { '' }
|
161
|
+
specify do
|
162
|
+
expect do
|
163
|
+
user_moodle_rb.search_identity('moodle_student@mailinator.com')
|
164
|
+
end.to raise_error(
|
165
|
+
MoodleRb::MoodleError,
|
166
|
+
'Invalid token - token not found'
|
167
|
+
)
|
168
|
+
end
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
143
172
|
describe '#update', :vcr => {
|
144
|
-
:match_requests_on => [:
|
173
|
+
:match_requests_on => [:path], :record => :once
|
145
174
|
} do
|
146
175
|
let(:user_id) { 4 }
|
147
176
|
let(:result) do
|
data/spec/lib/moodle_rb_spec.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe MoodleRb do
|
4
|
-
let(:url) { ENV['MOODLE_URL'] || 'localhost' }
|
5
|
-
let(:token) { ENV['MOODLE_TOKEN'] || '' }
|
4
|
+
let(:url) { ENV['MOODLE_URL'] || 'localhost:8888/moodle28' }
|
5
|
+
let(:token) { ENV['MOODLE_TOKEN'] || '60fc9c9415259404795094957e4ab32f' }
|
6
6
|
let(:moodle_rb) { MoodleRb.new(token, url) }
|
7
7
|
|
8
8
|
describe 'new' do
|