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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e7a0502a36b75c80c03711804558c9396a5e0b8bc28aa904ee4fbca86a7c28ba
4
- data.tar.gz: 8a32eabd2e1a6d6157bdae2c1cb64428e6572aba4cb11a6ba4b4cf904b8d6e1f
3
+ metadata.gz: 2aaad5052e67c719bbf81aa0bf40493865049dc2a75d6e2b429c0a41f222423f
4
+ data.tar.gz: 6152b2c8620b19c94cfad4b9b889cf508fb1050da2345f7b9c5c39f207687e7a
5
5
  SHA512:
6
- metadata.gz: 74f6e46875750a10b53cf5051d2b1ba543fb9dcc7ab4f3ef2e5eb1c7bb7e85c3884aa3b51d5878bd850c0cdeb51fca57ea3be4277becac23ddec1d5c9facf33a
7
- data.tar.gz: 9348229a5ff3940265d8afa641cb64fa1ba6b0c3fdd036cb17f3b9b02988c12c4a3e6fb45223b4f66494fc9105b21eaeac62fb023f6031f0b26cc0e2c32cfd61
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
- http.verify_mode = OpenSSL::SSL::VERIFY_NONE unless verify_ssl
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
+
@@ -59,4 +59,5 @@ module MiLadyCimaApi
59
59
  end
60
60
  end
61
61
 
62
+
62
63
  require_relative 'users/course_learners'
@@ -2,5 +2,5 @@
2
2
 
3
3
  module MiLadyCimaApi
4
4
  # Gem version
5
- VERSION = "0.4.0"
5
+ VERSION = "0.5.1"
6
6
  end
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.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