campus_ivy 0.1.1 → 1.0.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 (47) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +35 -0
  3. data/CHANGELOG.md +35 -0
  4. data/Rakefile +2 -2
  5. data/lib/campus_ivy/client.rb +190 -0
  6. data/lib/campus_ivy/object.rb +1 -1
  7. data/lib/campus_ivy/resources/attendance.rb +85 -0
  8. data/lib/campus_ivy/resources/award_and_disbursement_transmission.rb +30 -0
  9. data/lib/campus_ivy/resources/cod_log.rb +42 -0
  10. data/lib/campus_ivy/resources/cod_response_ec.rb +39 -0
  11. data/lib/campus_ivy/resources/cod_response_pn.rb +39 -0
  12. data/lib/campus_ivy/resources/cod_response_sp.rb +39 -0
  13. data/lib/campus_ivy/resources/disbursement_batch_detail.rb +36 -0
  14. data/lib/campus_ivy/resources/document_analysis.rb +39 -0
  15. data/lib/campus_ivy/resources/document_inventory.rb +36 -0
  16. data/lib/campus_ivy/resources/document_status.rb +30 -0
  17. data/lib/campus_ivy/resources/functional_area_task.rb +42 -0
  18. data/lib/campus_ivy/resources/health.rb +27 -0
  19. data/lib/campus_ivy/resources/institution_breaks_by_shift.rb +30 -0
  20. data/lib/campus_ivy/resources/net_price_calculator.rb +42 -0
  21. data/lib/campus_ivy/resources/note_type.rb +20 -0
  22. data/lib/campus_ivy/resources/packaging.rb +88 -0
  23. data/lib/campus_ivy/resources/pay_list_analysis.rb +57 -0
  24. data/lib/campus_ivy/resources/registered_student.rb +84 -0
  25. data/lib/campus_ivy/resources/service_type.rb +20 -0
  26. data/lib/campus_ivy/resources/student_award_transmission_log.rb +69 -0
  27. data/lib/campus_ivy/resources/student_awards.rb +45 -0
  28. data/lib/campus_ivy/resources/student_disbursement_transmission_log.rb +48 -0
  29. data/lib/campus_ivy/resources/student_document.rb +108 -0
  30. data/lib/campus_ivy/resources/student_document_history.rb +39 -0
  31. data/lib/campus_ivy/resources/student_document_tags.rb +36 -0
  32. data/lib/campus_ivy/resources/student_fa_progression.rb +60 -0
  33. data/lib/campus_ivy/resources/student_funding_detail.rb +66 -0
  34. data/lib/campus_ivy/resources/student_funding_estimate.rb +39 -0
  35. data/lib/campus_ivy/resources/student_isir.rb +75 -0
  36. data/lib/campus_ivy/resources/student_note.rb +72 -0
  37. data/lib/campus_ivy/resources/student_r2t4.rb +39 -0
  38. data/lib/campus_ivy/resources/student_reference.rb +75 -0
  39. data/lib/campus_ivy/resources/student_remaining_balance.rb +36 -0
  40. data/lib/campus_ivy/resources/student_selected_isir.rb +39 -0
  41. data/lib/campus_ivy/resources/user_login_option.rb +36 -0
  42. data/lib/campus_ivy/resources/user_notification.rb +48 -0
  43. data/lib/campus_ivy/resources/user_profile.rb +36 -0
  44. data/lib/campus_ivy/resources/user_role.rb +58 -0
  45. data/lib/campus_ivy/version.rb +1 -1
  46. data/lib/campus_ivy.rb +38 -0
  47. metadata +41 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6b91ea8a262bcd0fc408fd4241eb06bc64f4e8b9290edeaaa8a81f9d30f41470
4
- data.tar.gz: 8cde99cddefb22dc92b45523952b52d267dc0767d898a60879426011ddd44056
3
+ metadata.gz: a9f79973cef941b5c90cebb3dd9a0770fb866e007ae79142c08648db431f7a0e
4
+ data.tar.gz: cfb6f7d8a07f8c1cd1ba5cce8aed4fa82155f0337a41af1901c65b8d61b0b5d3
5
5
  SHA512:
6
- metadata.gz: 9e3a90859cc7f155f783c85eb9e937d6a000f8d3d35a81af4e6400477e54339ba3a98a93ebf1074b8c2b2ea23e4e6ca5f2cff63339c9c13a05e0a25b25b05e35
7
- data.tar.gz: 2cebc15d396c285b763363764b58ea4a2fa4dc26d3d541436a32076cc232d953730864117bcc41da7d872283856ed43ea0122825a42ef33a578a1bf6c5dc26d5
6
+ metadata.gz: 48df225a852d3f8fac9fa293c30cc7a14287ef79a1242ec3adb2a2a3bfaae8847b92b508dda3fd48e547fe056841fd8c8d23bbac6a4122438c6f785b25a0c822
7
+ data.tar.gz: ec2ac6aa6d845e7f24a2b13b519369d48581d78408a4935bc6caf96a6f2cd6dfcdbf336d541164e477492e194d20f150918fbe3543beb6619784be2eeba4872a
data/.rubocop.yml ADDED
@@ -0,0 +1,35 @@
1
+ AllCops:
2
+ TargetRubyVersion: 3.2
3
+ NewCops: enable
4
+
5
+ Metrics/BlockLength:
6
+ Exclude:
7
+ - 'spec/**/*'
8
+ - 'campus_ivy.gemspec'
9
+
10
+ Style/Documentation:
11
+ Enabled: false
12
+
13
+ Metrics/MethodLength:
14
+ Enabled: false
15
+
16
+ Metrics/ParameterLists:
17
+ Enabled: false
18
+
19
+ Metrics/ClassLength:
20
+ Enabled: false
21
+
22
+ Style/OpenStructUse:
23
+ Enabled: false
24
+
25
+ Metrics/CyclomaticComplexity:
26
+ Enabled: false
27
+
28
+ Metrics/PerceivedComplexity:
29
+ Enabled: false
30
+
31
+ Style/MissingRespondToMissing:
32
+ Enabled: false
33
+
34
+ Gemspec/DevelopmentDependencies:
35
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -1,5 +1,40 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [1.0.0] - 2026-01-26
4
+
5
+ ### Added
6
+ - **Attendance:** Added `Attendance` resource.
7
+ - **Financial Aid (Awards & Disbursements):**
8
+ - `AwardAndDisbursementTransmission`
9
+ - `DisbursementBatchDetail`
10
+ - `Packaging`
11
+ - `StudentAwards`
12
+ - `StudentAwardTransmissionLog`
13
+ - `StudentDisbursementTransmissionLog`
14
+ - **Financial Aid (COD/ISIR/R2T4):**
15
+ - `CODLog`, `CODResponseEC`, `CODResponsePN`, `CODResponseSP`
16
+ - `StudentISIR` (including `verification_request` and `update_status`)
17
+ - `StudentSelectedISIR`
18
+ - `StudentR2T4`
19
+ - **Financial Aid (Analysis & Funding):**
20
+ - `NetPriceCalculator`, `PayListAnalysis`
21
+ - `StudentFAProgression`, `StudentFundingDetail`
22
+ - `StudentFundingEstimate`, `StudentRemainingBalance`
23
+ - **Documents:**
24
+ - `DocumentAnalysis`, `DocumentInventory`, `DocumentStatus`
25
+ - `StudentDocument` (including import and blob search)
26
+ - `StudentDocumentHistory`, `StudentDocumentTags`
27
+ - **System & User:**
28
+ - `FunctionalAreaTask`, `Health` (check & ping)
29
+ - `InstitutionBreaksByShift`, `NoteType`
30
+ - `RegisteredStudent` (list & create)
31
+ - `ServiceType`
32
+ - `StudentNote` (list & create)
33
+ - `StudentReference` (list & create)
34
+ - `UserLoginOption`, `UserNotification` (list & mark_read)
35
+ - `UserProfile`, `UserRole` (including xref)
36
+ - **Client:** Exposed all new resources via `CampusIvy::Client` accessors.
37
+
3
38
  ## [0.1.0] - 2025-12-16
4
39
 
5
40
  ### Added
data/Rakefile CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "bundler/gem_tasks"
4
- require "minitest/test_task"
3
+ require 'bundler/gem_tasks'
4
+ require 'minitest/test_task'
5
5
 
6
6
  Minitest::TestTask.create
7
7
 
@@ -30,5 +30,195 @@ module CampusIvy
30
30
  def account
31
31
  Resources::Account.new(self)
32
32
  end
33
+
34
+ sig { returns(CampusIvy::Resources::Attendance) }
35
+ def attendance
36
+ Resources::Attendance.new(self)
37
+ end
38
+
39
+ sig { returns(CampusIvy::Resources::AwardAndDisbursementTransmission) }
40
+ def award_and_disbursement_transmission
41
+ Resources::AwardAndDisbursementTransmission.new(self)
42
+ end
43
+
44
+ sig { returns(CampusIvy::Resources::DisbursementBatchDetail) }
45
+ def disbursement_batch_detail
46
+ Resources::DisbursementBatchDetail.new(self)
47
+ end
48
+
49
+ sig { returns(CampusIvy::Resources::Packaging) }
50
+ def packaging
51
+ Resources::Packaging.new(self)
52
+ end
53
+
54
+ sig { returns(CampusIvy::Resources::StudentAwards) }
55
+ def student_awards
56
+ Resources::StudentAwards.new(self)
57
+ end
58
+
59
+ sig { returns(CampusIvy::Resources::StudentAwardTransmissionLog) }
60
+ def student_award_transmission_log
61
+ Resources::StudentAwardTransmissionLog.new(self)
62
+ end
63
+
64
+ sig { returns(CampusIvy::Resources::StudentDisbursementTransmissionLog) }
65
+ def student_disbursement_transmission_log
66
+ Resources::StudentDisbursementTransmissionLog.new(self)
67
+ end
68
+
69
+ sig { returns(CampusIvy::Resources::CODLog) }
70
+ def cod_log
71
+ Resources::CODLog.new(self)
72
+ end
73
+
74
+ sig { returns(CampusIvy::Resources::CODResponseEC) }
75
+ def cod_response_ec
76
+ Resources::CODResponseEC.new(self)
77
+ end
78
+
79
+ sig { returns(CampusIvy::Resources::CODResponsePN) }
80
+ def cod_response_pn
81
+ Resources::CODResponsePN.new(self)
82
+ end
83
+
84
+ sig { returns(CampusIvy::Resources::CODResponseSP) }
85
+ def cod_response_sp
86
+ Resources::CODResponseSP.new(self)
87
+ end
88
+
89
+ sig { returns(CampusIvy::Resources::StudentISIR) }
90
+ def student_isir
91
+ Resources::StudentISIR.new(self)
92
+ end
93
+
94
+ sig { returns(CampusIvy::Resources::StudentSelectedISIR) }
95
+ def student_selected_isir
96
+ Resources::StudentSelectedISIR.new(self)
97
+ end
98
+
99
+ sig { returns(CampusIvy::Resources::StudentR2T4) }
100
+ def student_r2t4
101
+ Resources::StudentR2T4.new(self)
102
+ end
103
+
104
+ sig { returns(CampusIvy::Resources::NetPriceCalculator) }
105
+ def net_price_calculator
106
+ Resources::NetPriceCalculator.new(self)
107
+ end
108
+
109
+ sig { returns(CampusIvy::Resources::PayListAnalysis) }
110
+ def pay_list_analysis
111
+ Resources::PayListAnalysis.new(self)
112
+ end
113
+
114
+ sig { returns(CampusIvy::Resources::StudentFAProgression) }
115
+ def student_fa_progression
116
+ Resources::StudentFAProgression.new(self)
117
+ end
118
+
119
+ sig { returns(CampusIvy::Resources::StudentFundingDetail) }
120
+ def student_funding_detail
121
+ Resources::StudentFundingDetail.new(self)
122
+ end
123
+
124
+ sig { returns(CampusIvy::Resources::StudentFundingEstimate) }
125
+ def student_funding_estimate
126
+ Resources::StudentFundingEstimate.new(self)
127
+ end
128
+
129
+ sig { returns(CampusIvy::Resources::StudentRemainingBalance) }
130
+ def student_remaining_balance
131
+ Resources::StudentRemainingBalance.new(self)
132
+ end
133
+
134
+ sig { returns(CampusIvy::Resources::DocumentAnalysis) }
135
+ def document_analysis
136
+ Resources::DocumentAnalysis.new(self)
137
+ end
138
+
139
+ sig { returns(CampusIvy::Resources::DocumentInventory) }
140
+ def document_inventory
141
+ Resources::DocumentInventory.new(self)
142
+ end
143
+
144
+ sig { returns(CampusIvy::Resources::DocumentStatus) }
145
+ def document_status
146
+ Resources::DocumentStatus.new(self)
147
+ end
148
+
149
+ sig { returns(CampusIvy::Resources::StudentDocument) }
150
+ def student_document
151
+ Resources::StudentDocument.new(self)
152
+ end
153
+
154
+ sig { returns(CampusIvy::Resources::StudentDocumentHistory) }
155
+ def student_document_history
156
+ Resources::StudentDocumentHistory.new(self)
157
+ end
158
+
159
+ sig { returns(CampusIvy::Resources::StudentDocumentTags) }
160
+ def student_document_tags
161
+ Resources::StudentDocumentTags.new(self)
162
+ end
163
+
164
+ sig { returns(CampusIvy::Resources::FunctionalAreaTask) }
165
+ def functional_area_task
166
+ Resources::FunctionalAreaTask.new(self)
167
+ end
168
+
169
+ sig { returns(CampusIvy::Resources::Health) }
170
+ def health
171
+ Resources::Health.new(self)
172
+ end
173
+
174
+ sig { returns(CampusIvy::Resources::InstitutionBreaksByShift) }
175
+ def institution_breaks_by_shift
176
+ Resources::InstitutionBreaksByShift.new(self)
177
+ end
178
+
179
+ sig { returns(CampusIvy::Resources::NoteType) }
180
+ def note_type
181
+ Resources::NoteType.new(self)
182
+ end
183
+
184
+ sig { returns(CampusIvy::Resources::RegisteredStudent) }
185
+ def registered_student
186
+ Resources::RegisteredStudent.new(self)
187
+ end
188
+
189
+ sig { returns(CampusIvy::Resources::ServiceType) }
190
+ def service_type
191
+ Resources::ServiceType.new(self)
192
+ end
193
+
194
+ sig { returns(CampusIvy::Resources::StudentNote) }
195
+ def student_note
196
+ Resources::StudentNote.new(self)
197
+ end
198
+
199
+ sig { returns(CampusIvy::Resources::StudentReference) }
200
+ def student_reference
201
+ Resources::StudentReference.new(self)
202
+ end
203
+
204
+ sig { returns(CampusIvy::Resources::UserLoginOption) }
205
+ def user_login_option
206
+ Resources::UserLoginOption.new(self)
207
+ end
208
+
209
+ sig { returns(CampusIvy::Resources::UserNotification) }
210
+ def user_notification
211
+ Resources::UserNotification.new(self)
212
+ end
213
+
214
+ sig { returns(CampusIvy::Resources::UserProfile) }
215
+ def user_profile
216
+ Resources::UserProfile.new(self)
217
+ end
218
+
219
+ sig { returns(CampusIvy::Resources::UserRole) }
220
+ def user_role
221
+ Resources::UserRole.new(self)
222
+ end
33
223
  end
34
224
  end
@@ -18,7 +18,7 @@ module CampusIvy
18
18
  )
19
19
  end
20
20
 
21
- def method_missing(method, *args, &block)
21
+ def method_missing(method, *args, &)
22
22
  if encoding_aware? && method.to_s.end_with?('=')
23
23
  super
24
24
  else
@@ -0,0 +1,85 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CampusIvy
4
+ module Resources
5
+ class Attendance
6
+ extend T::Sig
7
+
8
+ sig { params(client: CampusIvy::Client).void }
9
+ def initialize(client)
10
+ @client = client
11
+ end
12
+
13
+ sig do
14
+ params(
15
+ institution_import_file_id: T.nilable(Integer),
16
+ import_processing_status_id: T.nilable(String),
17
+ student_id: T.nilable(String),
18
+ has_errors: T.nilable(T::Boolean),
19
+ has_warnings: T.nilable(T::Boolean),
20
+ start_date: T.nilable(String),
21
+ end_date: T.nilable(String)
22
+ ).returns(CampusIvy::Object)
23
+ end
24
+ def list(
25
+ institution_import_file_id: nil,
26
+ import_processing_status_id: nil,
27
+ student_id: nil,
28
+ has_errors: nil,
29
+ has_warnings: nil,
30
+ start_date: nil,
31
+ end_date: nil
32
+ )
33
+ params = {
34
+ 'request.institutionImportFileId' => institution_import_file_id,
35
+ 'request.importProcessingStatusId' => import_processing_status_id,
36
+ 'request.studentId' => student_id,
37
+ 'request.hasErrors' => has_errors,
38
+ 'request.hasWarnings' => has_warnings,
39
+ 'request.startDate' => start_date,
40
+ 'request.endDate' => end_date
41
+ }.compact
42
+
43
+ response = @client.connection.get('Attendance', params)
44
+ CampusIvy::Object.new(response.body)
45
+ end
46
+
47
+ sig do
48
+ params(
49
+ students_attendances: T::Array[T::Hash[Symbol, T.untyped]],
50
+ file_source: T.nilable(String),
51
+ validate_records: T.nilable(T::Boolean),
52
+ process_records: T.nilable(T::Boolean),
53
+ return_result: T.nilable(T::Boolean),
54
+ batch_size: T.nilable(Integer),
55
+ response_type: T.nilable(String)
56
+ ).returns(CampusIvy::Object)
57
+ end
58
+ def import(
59
+ students_attendances:,
60
+ file_source: nil,
61
+ validate_records: nil,
62
+ process_records: nil,
63
+ return_result: nil,
64
+ batch_size: nil,
65
+ response_type: nil
66
+ )
67
+ query_params = {
68
+ fileSource: file_source,
69
+ validateRecords: validate_records,
70
+ processRecords: process_records,
71
+ returnResult: return_result,
72
+ batchSize: batch_size,
73
+ responseType: response_type
74
+ }.compact
75
+
76
+ response = @client.connection.post('Attendance') do |req|
77
+ req.params = query_params
78
+ req.body = students_attendances
79
+ end
80
+
81
+ CampusIvy::Object.new(response.body)
82
+ end
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CampusIvy
4
+ module Resources
5
+ class AwardAndDisbursementTransmission
6
+ extend T::Sig
7
+
8
+ sig { params(client: CampusIvy::Client).void }
9
+ def initialize(client)
10
+ @client = client
11
+ end
12
+
13
+ sig do
14
+ params(
15
+ start_date: T.nilable(String),
16
+ end_date: T.nilable(String)
17
+ ).returns(CampusIvy::Object)
18
+ end
19
+ def list(start_date: nil, end_date: nil)
20
+ params = {
21
+ 'request.startDate' => start_date,
22
+ 'request.endDate' => end_date
23
+ }.compact
24
+
25
+ response = @client.connection.get('AwardAndDisbursementTransmission', params)
26
+ CampusIvy::Object.new(response.body)
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CampusIvy
4
+ module Resources
5
+ class CODLog
6
+ extend T::Sig
7
+
8
+ sig { params(client: CampusIvy::Client).void }
9
+ def initialize(client)
10
+ @client = client
11
+ end
12
+
13
+ sig do
14
+ params(
15
+ financial_award_id: T.nilable(String),
16
+ document_id: T.nilable(String),
17
+ ssn: T.nilable(String),
18
+ start_date: T.nilable(String),
19
+ end_date: T.nilable(String)
20
+ ).returns(CampusIvy::Object)
21
+ end
22
+ def list(
23
+ financial_award_id: nil,
24
+ document_id: nil,
25
+ ssn: nil,
26
+ start_date: nil,
27
+ end_date: nil
28
+ )
29
+ params = {
30
+ 'request.financialAwardId' => financial_award_id,
31
+ 'request.documentId' => document_id,
32
+ 'request.ssn' => ssn,
33
+ 'request.startDate' => start_date,
34
+ 'request.endDate' => end_date
35
+ }.compact
36
+
37
+ response = @client.connection.get('CODLog', params)
38
+ CampusIvy::Object.new(response.body)
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CampusIvy
4
+ module Resources
5
+ class CODResponseEC
6
+ extend T::Sig
7
+
8
+ sig { params(client: CampusIvy::Client).void }
9
+ def initialize(client)
10
+ @client = client
11
+ end
12
+
13
+ sig do
14
+ params(
15
+ institution_student_id: T.nilable(Integer),
16
+ student_id_list: T.nilable(String),
17
+ start_date: T.nilable(String),
18
+ end_date: T.nilable(String)
19
+ ).returns(CampusIvy::Object)
20
+ end
21
+ def list(
22
+ institution_student_id: nil,
23
+ student_id_list: nil,
24
+ start_date: nil,
25
+ end_date: nil
26
+ )
27
+ params = {
28
+ 'request.institutionStudentId' => institution_student_id,
29
+ 'request.studentIdList' => student_id_list,
30
+ 'request.startDate' => start_date,
31
+ 'request.endDate' => end_date
32
+ }.compact
33
+
34
+ response = @client.connection.get('CODResponseEC', params)
35
+ CampusIvy::Object.new(response.body)
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CampusIvy
4
+ module Resources
5
+ class CODResponsePN
6
+ extend T::Sig
7
+
8
+ sig { params(client: CampusIvy::Client).void }
9
+ def initialize(client)
10
+ @client = client
11
+ end
12
+
13
+ sig do
14
+ params(
15
+ institution_student_id: T.nilable(Integer),
16
+ student_id_list: T.nilable(String),
17
+ start_date: T.nilable(String),
18
+ end_date: T.nilable(String)
19
+ ).returns(CampusIvy::Object)
20
+ end
21
+ def list(
22
+ institution_student_id: nil,
23
+ student_id_list: nil,
24
+ start_date: nil,
25
+ end_date: nil
26
+ )
27
+ params = {
28
+ 'request.institutionStudentId' => institution_student_id,
29
+ 'request.studentIdList' => student_id_list,
30
+ 'request.startDate' => start_date,
31
+ 'request.endDate' => end_date
32
+ }.compact
33
+
34
+ response = @client.connection.get('CODResponsePN', params)
35
+ CampusIvy::Object.new(response.body)
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CampusIvy
4
+ module Resources
5
+ class CODResponseSP
6
+ extend T::Sig
7
+
8
+ sig { params(client: CampusIvy::Client).void }
9
+ def initialize(client)
10
+ @client = client
11
+ end
12
+
13
+ sig do
14
+ params(
15
+ institution_student_id: T.nilable(Integer),
16
+ student_id_list: T.nilable(String),
17
+ start_date: T.nilable(String),
18
+ end_date: T.nilable(String)
19
+ ).returns(CampusIvy::Object)
20
+ end
21
+ def list(
22
+ institution_student_id: nil,
23
+ student_id_list: nil,
24
+ start_date: nil,
25
+ end_date: nil
26
+ )
27
+ params = {
28
+ 'request.institutionStudentId' => institution_student_id,
29
+ 'request.studentIdList' => student_id_list,
30
+ 'request.startDate' => start_date,
31
+ 'request.endDate' => end_date
32
+ }.compact
33
+
34
+ response = @client.connection.get('CODResponseSP', params)
35
+ CampusIvy::Object.new(response.body)
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CampusIvy
4
+ module Resources
5
+ class DisbursementBatchDetail
6
+ extend T::Sig
7
+
8
+ sig { params(client: CampusIvy::Client).void }
9
+ def initialize(client)
10
+ @client = client
11
+ end
12
+
13
+ sig do
14
+ params(
15
+ institution_disbursement_batch_header_id_list: T.nilable(String),
16
+ start_date: T.nilable(String),
17
+ end_date: T.nilable(String)
18
+ ).returns(CampusIvy::Object)
19
+ end
20
+ def list(
21
+ institution_disbursement_batch_header_id_list: nil,
22
+ start_date: nil,
23
+ end_date: nil
24
+ )
25
+ params = {
26
+ 'request.institutionDisbursementBatchHeaderIdList' => institution_disbursement_batch_header_id_list,
27
+ 'request.startDate' => start_date,
28
+ 'request.endDate' => end_date
29
+ }.compact
30
+
31
+ response = @client.connection.get('DisbursementBatchDetail', params)
32
+ CampusIvy::Object.new(response.body)
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CampusIvy
4
+ module Resources
5
+ class DocumentAnalysis
6
+ extend T::Sig
7
+
8
+ sig { params(client: CampusIvy::Client).void }
9
+ def initialize(client)
10
+ @client = client
11
+ end
12
+
13
+ sig do
14
+ params(
15
+ institution_student_id: T.nilable(Integer),
16
+ student_id_list: T.nilable(String),
17
+ start_date: T.nilable(String),
18
+ end_date: T.nilable(String)
19
+ ).returns(CampusIvy::Object)
20
+ end
21
+ def list(
22
+ institution_student_id: nil,
23
+ student_id_list: nil,
24
+ start_date: nil,
25
+ end_date: nil
26
+ )
27
+ params = {
28
+ 'request.institutionStudentId' => institution_student_id,
29
+ 'request.studentIdList' => student_id_list,
30
+ 'request.startDate' => start_date,
31
+ 'request.endDate' => end_date
32
+ }.compact
33
+
34
+ response = @client.connection.get('DocumentAnalysis', params)
35
+ CampusIvy::Object.new(response.body)
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CampusIvy
4
+ module Resources
5
+ class DocumentInventory
6
+ extend T::Sig
7
+
8
+ sig { params(client: CampusIvy::Client).void }
9
+ def initialize(client)
10
+ @client = client
11
+ end
12
+
13
+ sig do
14
+ params(
15
+ institution_document_id_list: T.nilable(String),
16
+ start_date: T.nilable(String),
17
+ end_date: T.nilable(String)
18
+ ).returns(CampusIvy::Object)
19
+ end
20
+ def list(
21
+ institution_document_id_list: nil,
22
+ start_date: nil,
23
+ end_date: nil
24
+ )
25
+ params = {
26
+ 'request.institutionDocumentIdList' => institution_document_id_list,
27
+ 'request.startDate' => start_date,
28
+ 'request.endDate' => end_date
29
+ }.compact
30
+
31
+ response = @client.connection.get('DocumentInventory', params)
32
+ CampusIvy::Object.new(response.body)
33
+ end
34
+ end
35
+ end
36
+ end