milady-cima-api 0.4.0 → 0.5.1
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/CHANGELOG.md +10 -0
- data/lib/milady_cima_api/client.rb +11 -1
- data/lib/milady_cima_api/resources/courses/assessments/grades.rb +66 -0
- data/lib/milady_cima_api/resources/courses/assessments.rb +8 -0
- data/lib/milady_cima_api/resources/users.rb +1 -0
- data/lib/milady_cima_api/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2aaad5052e67c719bbf81aa0bf40493865049dc2a75d6e2b429c0a41f222423f
|
|
4
|
+
data.tar.gz: 6152b2c8620b19c94cfad4b9b889cf508fb1050da2345f7b9c5c39f207687e7a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bb2e79691071cb967e6b5f5c874c174994d081b9c15acdea8fca92b006038c3299ca4ef79479e8c69313339e10dadc68bcd990ae2218fc1558de66d23f9494e6
|
|
7
|
+
data.tar.gz: 406ad4d1a9ba63daa511a575ff1520f1e695af2ebb8f2a21d9d2792d0a005ab28e0a64f917045e86e4b2899242c6fe548018a815f526b99d0722936799e1149a
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
## [Unreleased]
|
|
2
2
|
|
|
3
|
+
## [0.5.1] - 2025-12-05
|
|
4
|
+
### Fixed
|
|
5
|
+
- Fixed SSL certificate verification error in `Client` by explicitly configuring `OpenSSL::X509::Store` with default paths.
|
|
6
|
+
|
|
7
|
+
## [0.5.0] - 2025-12-05
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- Added `Grades` resource under `Assessments` to support `GET /courses/{id}/assessments/{assessment_id}/grades` and `GET /courses/{id}/assessments/{assessment_id}/grades/{grade_id}`.
|
|
11
|
+
|
|
12
|
+
|
|
3
13
|
## [0.4.0] - 2025-12-04
|
|
4
14
|
|
|
5
15
|
### Added
|
|
@@ -102,7 +102,17 @@ module MiLadyCimaApi
|
|
|
102
102
|
def perform_request(uri, request)
|
|
103
103
|
http = Net::HTTP.new(uri.host, uri.port)
|
|
104
104
|
http.use_ssl = uri.scheme == 'https'
|
|
105
|
-
|
|
105
|
+
|
|
106
|
+
if http.use_ssl?
|
|
107
|
+
http.verify_mode = verify_ssl ? OpenSSL::SSL::VERIFY_PEER : OpenSSL::SSL::VERIFY_NONE
|
|
108
|
+
|
|
109
|
+
if verify_ssl
|
|
110
|
+
store = OpenSSL::X509::Store.new
|
|
111
|
+
store.set_default_paths
|
|
112
|
+
http.cert_store = store
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
|
|
106
116
|
response = http.request(request)
|
|
107
117
|
handle_response(response)
|
|
108
118
|
end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../../base'
|
|
4
|
+
|
|
5
|
+
module MiLadyCimaApi
|
|
6
|
+
module Resources
|
|
7
|
+
class Courses
|
|
8
|
+
class Assessments
|
|
9
|
+
# Grades resource exposes endpoints under /courses/{id}/assessments/{assessment_id}/grades
|
|
10
|
+
class Grades < Resources::Base
|
|
11
|
+
|
|
12
|
+
# List grades for an assessment
|
|
13
|
+
#
|
|
14
|
+
# GET /courses/{id}/assessments/{assessment_id}/grades
|
|
15
|
+
# @param course_id [Integer, String] ID of the course
|
|
16
|
+
# @param assessment_id [Integer, String] ID of the assessment
|
|
17
|
+
# @param filter [Hash, String] Filter using JSON structure
|
|
18
|
+
# @param limit [Integer] Limit the number of returned objects (default 10, max 100)
|
|
19
|
+
# @param offset [Integer] Used for paging through a small dataset
|
|
20
|
+
# @param after [Integer] Used for fast paging
|
|
21
|
+
# @param count [Boolean] If true, just return the number of list items
|
|
22
|
+
# @param include [String] Comma separated list of relationships to include
|
|
23
|
+
# @return [Array, Hash] Parsed JSON response from the API
|
|
24
|
+
def list(course_id:, assessment_id:, filter: nil, limit: nil, offset: nil, after: nil, count: nil, include: nil)
|
|
25
|
+
raise ArgumentError, 'course_id is required' if course_id.nil?
|
|
26
|
+
raise ArgumentError, 'assessment_id is required' if assessment_id.nil?
|
|
27
|
+
|
|
28
|
+
if limit && limit > 100
|
|
29
|
+
raise ArgumentError, 'limit cannot be greater than 100'
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
params = {}
|
|
33
|
+
params['$filter'] = normalize_filter(filter) if filter
|
|
34
|
+
params['$limit'] = limit if limit
|
|
35
|
+
params['$offset'] = offset if offset
|
|
36
|
+
params['$after'] = after if after
|
|
37
|
+
params['$count'] = count if count
|
|
38
|
+
params['$include'] = include if include
|
|
39
|
+
|
|
40
|
+
@client.get("/courses/#{course_id}/assessments/#{assessment_id}/grades", params: params)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# Get a single grade
|
|
44
|
+
#
|
|
45
|
+
# GET /courses/{id}/assessments/{assessment_id}/grades/{grade_id}
|
|
46
|
+
# @param course_id [Integer, String] ID of the course
|
|
47
|
+
# @param assessment_id [Integer, String] ID of the assessment
|
|
48
|
+
# @param grade_id [Integer, String] ID of the grade
|
|
49
|
+
# @param include [String] Comma separated list of relationships to include
|
|
50
|
+
# @return [Hash] Parsed JSON response from the API
|
|
51
|
+
def find(course_id:, assessment_id:, grade_id:, include: nil)
|
|
52
|
+
raise ArgumentError, 'course_id is required' if course_id.nil?
|
|
53
|
+
raise ArgumentError, 'assessment_id is required' if assessment_id.nil?
|
|
54
|
+
raise ArgumentError, 'grade_id is required' if grade_id.nil?
|
|
55
|
+
|
|
56
|
+
params = {}
|
|
57
|
+
params['$include'] = include if include
|
|
58
|
+
|
|
59
|
+
@client.get("/courses/#{course_id}/assessments/#{assessment_id}/grades/#{grade_id}", params: params)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
@@ -48,7 +48,15 @@ module MiLadyCimaApi
|
|
|
48
48
|
@client.get("/courses/#{course_id}/assessments/#{assessment_id}")
|
|
49
49
|
end
|
|
50
50
|
|
|
51
|
+
# @return [MiLadyCimaApi::Resources::Courses::Assessments::Grades]
|
|
52
|
+
def grades
|
|
53
|
+
@grades ||= Grades.new(@client)
|
|
54
|
+
end
|
|
55
|
+
|
|
51
56
|
end
|
|
52
57
|
end
|
|
53
58
|
end
|
|
54
59
|
end
|
|
60
|
+
|
|
61
|
+
require_relative 'assessments/grades'
|
|
62
|
+
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: milady-cima-api
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.5.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- marcus.salinas
|
|
@@ -30,6 +30,7 @@ files:
|
|
|
30
30
|
- lib/milady_cima_api/resources/base.rb
|
|
31
31
|
- lib/milady_cima_api/resources/courses.rb
|
|
32
32
|
- lib/milady_cima_api/resources/courses/assessments.rb
|
|
33
|
+
- lib/milady_cima_api/resources/courses/assessments/grades.rb
|
|
33
34
|
- lib/milady_cima_api/resources/courses/learners.rb
|
|
34
35
|
- lib/milady_cima_api/resources/organizations.rb
|
|
35
36
|
- lib/milady_cima_api/resources/users.rb
|