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
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CampusIvy
4
+ module Resources
5
+ class DocumentStatus
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('DocumentStatus', 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 FunctionalAreaTask
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
+ is_active: T.nilable(T::Boolean),
16
+ start_date: T.nilable(String),
17
+ end_date: T.nilable(String)
18
+ ).returns(CampusIvy::Object)
19
+ end
20
+ def list(
21
+ is_active: nil,
22
+ start_date: nil,
23
+ end_date: nil
24
+ )
25
+ params = {
26
+ 'request.isActive' => is_active,
27
+ 'request.startDate' => start_date,
28
+ 'request.endDate' => end_date
29
+ }.compact
30
+
31
+ response = @client.connection.get('FunctionalAreaTask', params)
32
+ CampusIvy::Object.new(response.body)
33
+ end
34
+
35
+ sig { params(id: Integer).returns(CampusIvy::Object) }
36
+ def show(id)
37
+ response = @client.connection.get("FunctionalAreaTask/#{id}")
38
+ CampusIvy::Object.new(response.body)
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CampusIvy
4
+ module Resources
5
+ class Health
6
+ extend T::Sig
7
+
8
+ sig { params(client: CampusIvy::Client).void }
9
+ def initialize(client)
10
+ @client = client
11
+ end
12
+
13
+ sig { returns(CampusIvy::Object) }
14
+ def check
15
+ response = @client.connection.get('health/check')
16
+ CampusIvy::Object.new(response.body)
17
+ end
18
+
19
+ sig { returns(String) }
20
+ def ping
21
+ # Ping returns plain string "Pong"
22
+ response = @client.connection.get('health/ping')
23
+ response.body.to_s
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CampusIvy
4
+ module Resources
5
+ class InstitutionBreaksByShift
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('InstitutionBreaksByShift', 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 NetPriceCalculator
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
+ institution_student_npc_id_list: 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
+ institution_student_id: nil,
24
+ student_id_list: nil,
25
+ institution_student_npc_id_list: nil,
26
+ start_date: nil,
27
+ end_date: nil
28
+ )
29
+ params = {
30
+ 'request.institutionStudentId' => institution_student_id,
31
+ 'request.studentIdList' => student_id_list,
32
+ 'request.institutionStudentNPCIdList' => institution_student_npc_id_list,
33
+ 'request.startDate' => start_date,
34
+ 'request.endDate' => end_date
35
+ }.compact
36
+
37
+ response = @client.connection.get('NetPriceCalculator', params)
38
+ CampusIvy::Object.new(response.body)
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CampusIvy
4
+ module Resources
5
+ class NoteType
6
+ extend T::Sig
7
+
8
+ sig { params(client: CampusIvy::Client).void }
9
+ def initialize(client)
10
+ @client = client
11
+ end
12
+
13
+ sig { returns(CampusIvy::Object) }
14
+ def list
15
+ response = @client.connection.get('NoteType')
16
+ CampusIvy::Object.new(response.body)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,88 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CampusIvy
4
+ module Resources
5
+ class Packaging
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('Packaging', params)
44
+ CampusIvy::Object.new(response.body)
45
+ end
46
+
47
+ sig do
48
+ params(
49
+ students: T::Array[T::Hash[Symbol, T.untyped]],
50
+ file_source: T.nilable(String),
51
+ return_errors_only: T.nilable(T::Boolean),
52
+ validate_records: T.nilable(T::Boolean),
53
+ process_records: T.nilable(T::Boolean),
54
+ return_result: T.nilable(T::Boolean),
55
+ batch_size: T.nilable(Integer),
56
+ response_type: T.nilable(String)
57
+ ).returns(CampusIvy::Object)
58
+ end
59
+ def import(
60
+ students:,
61
+ file_source: nil,
62
+ return_errors_only: nil,
63
+ validate_records: nil,
64
+ process_records: nil,
65
+ return_result: nil,
66
+ batch_size: nil,
67
+ response_type: nil
68
+ )
69
+ query_params = {
70
+ fileSource: file_source,
71
+ returnErrorsOnly: return_errors_only,
72
+ validateRecords: validate_records,
73
+ processRecords: process_records,
74
+ returnResult: return_result,
75
+ batchSize: batch_size,
76
+ responseType: response_type
77
+ }.compact
78
+
79
+ response = @client.connection.post('Packaging') do |req|
80
+ req.params = query_params
81
+ req.body = students
82
+ end
83
+
84
+ CampusIvy::Object.new(response.body)
85
+ end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CampusIvy
4
+ module Resources
5
+ class PayListAnalysis
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
+ award_year_id_list: T.nilable(String),
16
+ fund_type_id_list: T.nilable(String),
17
+ institution_fund_type_id_list: T.nilable(String),
18
+ transaction_type_id_list: T.nilable(String),
19
+ institution_entity_id_list: T.nilable(String),
20
+ institution_entity_location_id_list: T.nilable(String),
21
+ institution_enrollment_status_id_list: T.nilable(String),
22
+ student_id_list: T.nilable(String),
23
+ start_date: T.nilable(String),
24
+ end_date: T.nilable(String)
25
+ ).returns(CampusIvy::Object)
26
+ end
27
+ def list(
28
+ award_year_id_list: nil,
29
+ fund_type_id_list: nil,
30
+ institution_fund_type_id_list: nil,
31
+ transaction_type_id_list: nil,
32
+ institution_entity_id_list: nil,
33
+ institution_entity_location_id_list: nil,
34
+ institution_enrollment_status_id_list: nil,
35
+ student_id_list: nil,
36
+ start_date: nil,
37
+ end_date: nil
38
+ )
39
+ params = {
40
+ 'request.awardYearIdList' => award_year_id_list,
41
+ 'request.fundTypeIdList' => fund_type_id_list,
42
+ 'request.institutionFundTypeIdList' => institution_fund_type_id_list,
43
+ 'request.transactionTypeIdList' => transaction_type_id_list,
44
+ 'request.institutionEntityIdList' => institution_entity_id_list,
45
+ 'request.institutionEntityLocationIdList' => institution_entity_location_id_list,
46
+ 'request.institutionEnrollmentStatusIdList' => institution_enrollment_status_id_list,
47
+ 'request.studentIdList' => student_id_list,
48
+ 'request.startDate' => start_date,
49
+ 'request.endDate' => end_date
50
+ }.compact
51
+
52
+ response = @client.connection.get('PayListAnalysis', params)
53
+ CampusIvy::Object.new(response.body)
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,84 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CampusIvy
4
+ module Resources
5
+ class RegisteredStudent
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
+ student_id: String,
16
+ registered_student_id: T.nilable(String),
17
+ email_address: T.nilable(String),
18
+ first_name: T.nilable(String),
19
+ last_name: T.nilable(String),
20
+ mobile_phone_number: T.nilable(String),
21
+ dob: T.nilable(String),
22
+ address1: T.nilable(String),
23
+ address2: T.nilable(String),
24
+ city: T.nilable(String),
25
+ state: T.nilable(String),
26
+ zip: T.nilable(String),
27
+ country: T.nilable(String)
28
+ ).returns(CampusIvy::Object)
29
+ end
30
+ def create(
31
+ student_id:,
32
+ registered_student_id: nil,
33
+ email_address: nil,
34
+ first_name: nil,
35
+ last_name: nil,
36
+ mobile_phone_number: nil,
37
+ dob: nil,
38
+ address1: nil,
39
+ address2: nil,
40
+ city: nil,
41
+ state: nil,
42
+ zip: nil,
43
+ country: nil
44
+ )
45
+ payload = {
46
+ StudentId: student_id,
47
+ RegisteredStudentId: registered_student_id,
48
+ EmailAddress: email_address,
49
+ FirstName: first_name,
50
+ LastName: last_name,
51
+ MobilePhoneNumber: mobile_phone_number,
52
+ DOB: dob,
53
+ Address1: address1,
54
+ Address2: address2,
55
+ City: city,
56
+ State: state,
57
+ Zip: zip,
58
+ Country: country
59
+ }.compact
60
+
61
+ response = @client.connection.post('RegisteredStudent') do |req|
62
+ req.body = payload
63
+ end
64
+ CampusIvy::Object.new(response.body)
65
+ end
66
+
67
+ sig do
68
+ params(
69
+ student_id: T.nilable(String),
70
+ email_address: T.nilable(String)
71
+ ).returns(CampusIvy::Object)
72
+ end
73
+ def list(student_id: nil, email_address: nil)
74
+ params = {
75
+ 'request.studentId' => student_id,
76
+ 'request.emailAddress' => email_address
77
+ }.compact
78
+
79
+ response = @client.connection.get('RegisteredStudent', params)
80
+ CampusIvy::Object.new(response.body)
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CampusIvy
4
+ module Resources
5
+ class ServiceType
6
+ extend T::Sig
7
+
8
+ sig { params(client: CampusIvy::Client).void }
9
+ def initialize(client)
10
+ @client = client
11
+ end
12
+
13
+ sig { returns(CampusIvy::Object) }
14
+ def list
15
+ response = @client.connection.get('serviceType')
16
+ CampusIvy::Object.new(response.body)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CampusIvy
4
+ module Resources
5
+ class StudentAwardTransmissionLog
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
+ batch_sync_id: T.nilable(Integer),
16
+ integration_system: T.nilable(String),
17
+ is_current: T.nilable(T::Boolean),
18
+ integration_award_posted_status: T.nilable(String),
19
+ student_id: T.nilable(String),
20
+ message_wild_card: T.nilable(String),
21
+ institution_student_award_id: T.nilable(Integer),
22
+ institution_student_id: T.nilable(Integer),
23
+ institution_disbursement_batch_header_id_list: T.nilable(String),
24
+ is_status_update: T.nilable(T::Boolean),
25
+ is_academic_year_update: T.nilable(T::Boolean),
26
+ batch_date: T.nilable(String),
27
+ start_date: T.nilable(String),
28
+ end_date: T.nilable(String)
29
+ ).returns(CampusIvy::Object)
30
+ end
31
+ def list(
32
+ batch_sync_id: nil,
33
+ integration_system: nil,
34
+ is_current: nil,
35
+ integration_award_posted_status: nil,
36
+ student_id: nil,
37
+ message_wild_card: nil,
38
+ institution_student_award_id: nil,
39
+ institution_student_id: nil,
40
+ institution_disbursement_batch_header_id_list: nil,
41
+ is_status_update: nil,
42
+ is_academic_year_update: nil,
43
+ batch_date: nil,
44
+ start_date: nil,
45
+ end_date: nil
46
+ )
47
+ params = {
48
+ 'request.batchSyncId' => batch_sync_id,
49
+ 'request.integrationSystem' => integration_system,
50
+ 'request.isCurrent' => is_current,
51
+ 'request.integrationAwardPostedStatus' => integration_award_posted_status,
52
+ 'request.studentId' => student_id,
53
+ 'request.messageWildCard' => message_wild_card,
54
+ 'request.institutionStudentAwardId' => institution_student_award_id,
55
+ 'request.institutionStudentId' => institution_student_id,
56
+ 'request.institutionDisbursementBatchHeaderIdList' => institution_disbursement_batch_header_id_list,
57
+ 'request.isStatusUpdate' => is_status_update,
58
+ 'request.isAcademicYearUpdate' => is_academic_year_update,
59
+ 'request.batchDate' => batch_date,
60
+ 'request.startDate' => start_date,
61
+ 'request.endDate' => end_date
62
+ }.compact
63
+
64
+ response = @client.connection.get('StudentAwardTransmissionLog', params)
65
+ CampusIvy::Object.new(response.body)
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CampusIvy
4
+ module Resources
5
+ class StudentAwards
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('StudentAwards', params)
35
+ CampusIvy::Object.new(response.body)
36
+ end
37
+
38
+ sig { params(award_year_id: Integer).returns(CampusIvy::Object) }
39
+ def get_pell_grant_min_max(award_year_id:)
40
+ response = @client.connection.get("StudentAwards/GetPellGrantMinMax/#{award_year_id}")
41
+ CampusIvy::Object.new(response.body)
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CampusIvy
4
+ module Resources
5
+ class StudentDisbursementTransmissionLog
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
+ is_current: T.nilable(T::Boolean),
16
+ student_id: T.nilable(String),
17
+ message_wild_card: T.nilable(String),
18
+ institution_disbursement_batch_header_id_list: T.nilable(String),
19
+ batch_date: T.nilable(String),
20
+ start_date: T.nilable(String),
21
+ end_date: T.nilable(String)
22
+ ).returns(CampusIvy::Object)
23
+ end
24
+ def list(
25
+ is_current: nil,
26
+ student_id: nil,
27
+ message_wild_card: nil,
28
+ institution_disbursement_batch_header_id_list: nil,
29
+ batch_date: nil,
30
+ start_date: nil,
31
+ end_date: nil
32
+ )
33
+ params = {
34
+ 'request.isCurrent' => is_current,
35
+ 'request.studentId' => student_id,
36
+ 'request.messageWildCard' => message_wild_card,
37
+ 'request.institutionDisbursementBatchHeaderIdList' => institution_disbursement_batch_header_id_list,
38
+ 'request.batchDate' => batch_date,
39
+ 'request.startDate' => start_date,
40
+ 'request.endDate' => end_date
41
+ }.compact
42
+
43
+ response = @client.connection.get('StudentDisbursementTransmissionLog', params)
44
+ CampusIvy::Object.new(response.body)
45
+ end
46
+ end
47
+ end
48
+ end