milady-cima-api 0.5.0 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3b27f1849aacecfc77119f05d9c7454f58a604c0a95dc0986482be70002b0ac7
4
- data.tar.gz: 7148bc31ae740a1c57d2a8be54f8cb5ceed2e09e0729f88a256bf25889b3e229
3
+ metadata.gz: 770badc9b7e766d70b1bd810e3a23eeb633506e7089381645fc9f411120e5f01
4
+ data.tar.gz: 51c8865ad32f35a7d01f201092ce2cec4bd852c720c7f0365ea3ee7a3ecb342a
5
5
  SHA512:
6
- metadata.gz: c4ad1b152a1a233bfe35c77118f91ee53d8c3d9192e32fa2f6f61af3940941e46fbbfb639c856b768f968d445e14b48261b2926bdc3fb95bc2dfb331624aacfb
7
- data.tar.gz: 9c51b3a72315b0388dffa0d9c17266514b158a0184cc5de0df8bd7a9069e0e04271e4f469d6fb722d0a208072c2e7c014d91e8af0251f79d43b725196f0083ac
6
+ metadata.gz: 1f007a9ff35294be16fbda5e3cdc361488dac246ac36e5b464f2dffbeee3f2493219165bb21ee46594c9df43baffb04e7399bc7ff41732259ffb86b1d187d620
7
+ data.tar.gz: e1aa992031ba35dacc079451ad23e60301f2c9d5227c12e6e8e570298e4787b044e5a5205ab23f0cb0dc23487bdecb25bbb8defbcb4cba2df65a888857bd8c11
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.6.0] - 2025-12-05
4
+ ### Added
5
+ - Added `AssessmentGrades` resource under `Users` to support `GET /users/{id}/assessment_grades` and `GET /users/{id}/assessment_grades/{grade_id}`.
6
+
7
+ ## [0.5.1] - 2025-12-05
8
+ ### Fixed
9
+ - Fixed SSL certificate verification error in `Client` by explicitly configuring `OpenSSL::X509::Store` with default paths.
10
+
3
11
  ## [0.5.0] - 2025-12-05
4
12
 
5
13
  ### 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,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../base'
4
+
5
+ module MiLadyCimaApi
6
+ module Resources
7
+ class Users
8
+ # AssessmentGrades resource exposes endpoints under /users/{id}/assessment_grades
9
+ class AssessmentGrades < Resources::Base
10
+
11
+ # List user assessment grades
12
+ #
13
+ # GET /users/{id}/assessment_grades
14
+ # @param user_id [Integer, String] ID of the user
15
+ # @param after [Integer] Used for fast paging
16
+ # @param count [Boolean] If true, just return the number of list items
17
+ # @param filter [Hash, String] Filter using JSON structure
18
+ # @param include [String] Comma separated list of relationships to include
19
+ # @param limit [Integer] Limit the number of returned objects (default 10, max 100)
20
+ # @param offset [Integer] Used for paging through a small dataset
21
+ # @return [Array, Hash] Parsed JSON response from the API
22
+ def list(user_id:, after: nil, count: nil, filter: nil, include: nil, limit: nil, offset: nil)
23
+ raise ArgumentError, 'user_id is required' if user_id.nil?
24
+
25
+ if limit && limit > 100
26
+ raise ArgumentError, 'limit cannot be greater than 100'
27
+ end
28
+
29
+ params = {}
30
+ params['$after'] = after if after
31
+ params['$count'] = count if count
32
+ params['$filter'] = normalize_filter(filter) if filter
33
+ params['$include'] = include if include
34
+ params['$limit'] = limit if limit
35
+ params['$offset'] = offset if offset
36
+
37
+ @client.get("/users/#{user_id}/assessment_grades", params: params)
38
+ end
39
+
40
+ # Get a user's assessment grade
41
+ #
42
+ # GET /users/{id}/assessment_grades/{grade_id}
43
+ # @param user_id [Integer, String] ID of the user
44
+ # @param grade_id [Integer, String] ID of the grade
45
+ # @param include [String] Comma separated list of relationships to include
46
+ # @return [Hash] Parsed JSON response from the API
47
+ def find(user_id:, grade_id:, include: nil)
48
+ raise ArgumentError, 'user_id is required' if user_id.nil?
49
+ raise ArgumentError, 'grade_id is required' if grade_id.nil?
50
+
51
+ params = {}
52
+ params['$include'] = include if include
53
+
54
+ @client.get("/users/#{user_id}/assessment_grades/#{grade_id}", params: params)
55
+ end
56
+
57
+ end
58
+ end
59
+ end
60
+ end
@@ -55,9 +55,16 @@ module MiLadyCimaApi
55
55
  @client.get("/users/#{id}", params: params)
56
56
  end
57
57
 
58
+
59
+ # @return [MiLadyCimaApi::Resources::Users::AssessmentGrades]
60
+ def assessment_grades
61
+ @assessment_grades ||= AssessmentGrades.new(@client)
62
+ end
63
+
58
64
  end
59
65
  end
60
66
  end
61
67
 
62
68
 
63
- require_relative 'users/course_learners'
69
+ require_relative 'users/course_learners'
70
+ require_relative 'users/assessment_grades'
@@ -2,5 +2,5 @@
2
2
 
3
3
  module MiLadyCimaApi
4
4
  # Gem version
5
- VERSION = "0.5.0"
5
+ VERSION = "0.6.0"
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.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - marcus.salinas
@@ -34,6 +34,7 @@ files:
34
34
  - lib/milady_cima_api/resources/courses/learners.rb
35
35
  - lib/milady_cima_api/resources/organizations.rb
36
36
  - lib/milady_cima_api/resources/users.rb
37
+ - lib/milady_cima_api/resources/users/assessment_grades.rb
37
38
  - lib/milady_cima_api/resources/users/course_learners.rb
38
39
  - lib/milady_cima_api/version.rb
39
40
  homepage: https://github.com/jippylong12/milady-cima-api