clever-ruby 0.14.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/Gemfile +4 -1
- data/Makefile +10 -0
- data/README.md +175 -68
- data/Rakefile +6 -36
- data/circle.yml +1 -1
- data/clever-ruby.gemspec +43 -33
- data/docs/BadRequest.md +8 -0
- data/docs/DataApi.md +2144 -0
- data/docs/District.md +10 -0
- data/docs/DistrictAdmin.md +12 -0
- data/docs/DistrictAdminResponse.md +8 -0
- data/docs/DistrictAdminsResponse.md +8 -0
- data/docs/DistrictObject.md +8 -0
- data/docs/DistrictResponse.md +8 -0
- data/docs/DistrictStatus.md +15 -0
- data/docs/DistrictStatusResponse.md +8 -0
- data/docs/DistrictsCreated.md +10 -0
- data/docs/DistrictsDeleted.md +10 -0
- data/docs/DistrictsResponse.md +8 -0
- data/docs/DistrictsUpdated.md +10 -0
- data/docs/Event.md +9 -0
- data/docs/EventResponse.md +8 -0
- data/docs/EventsApi.md +424 -0
- data/docs/EventsResponse.md +8 -0
- data/docs/GradeLevelsResponse.md +8 -0
- data/docs/InternalError.md +8 -0
- data/docs/Location.md +13 -0
- data/docs/Name.md +10 -0
- data/docs/NotFound.md +8 -0
- data/docs/Principal.md +9 -0
- data/docs/School.md +22 -0
- data/docs/SchoolAdmin.md +14 -0
- data/docs/SchoolAdminObject.md +8 -0
- data/docs/SchoolAdminResponse.md +8 -0
- data/docs/SchoolAdminsResponse.md +8 -0
- data/docs/SchoolObject.md +8 -0
- data/docs/SchoolResponse.md +8 -0
- data/docs/SchooladminsCreated.md +10 -0
- data/docs/SchooladminsDeleted.md +10 -0
- data/docs/SchooladminsUpdated.md +10 -0
- data/docs/SchoolsCreated.md +10 -0
- data/docs/SchoolsDeleted.md +10 -0
- data/docs/SchoolsResponse.md +8 -0
- data/docs/SchoolsUpdated.md +10 -0
- data/docs/Section.md +25 -0
- data/docs/SectionObject.md +8 -0
- data/docs/SectionResponse.md +8 -0
- data/docs/SectionsCreated.md +10 -0
- data/docs/SectionsDeleted.md +10 -0
- data/docs/SectionsResponse.md +8 -0
- data/docs/SectionsUpdated.md +10 -0
- data/docs/Student.md +27 -0
- data/docs/StudentContact.md +16 -0
- data/docs/StudentContactObject.md +8 -0
- data/docs/StudentContactResponse.md +8 -0
- data/docs/StudentContactsResponse.md +8 -0
- data/docs/StudentObject.md +8 -0
- data/docs/StudentResponse.md +8 -0
- data/docs/StudentcontactsCreated.md +10 -0
- data/docs/StudentcontactsDeleted.md +10 -0
- data/docs/StudentcontactsUpdated.md +10 -0
- data/docs/StudentsCreated.md +10 -0
- data/docs/StudentsDeleted.md +10 -0
- data/docs/StudentsResponse.md +8 -0
- data/docs/StudentsUpdated.md +10 -0
- data/docs/Teacher.md +19 -0
- data/docs/TeacherObject.md +8 -0
- data/docs/TeacherResponse.md +8 -0
- data/docs/TeachersCreated.md +10 -0
- data/docs/TeachersDeleted.md +10 -0
- data/docs/TeachersResponse.md +8 -0
- data/docs/TeachersUpdated.md +10 -0
- data/docs/Term.md +10 -0
- data/git_push.sh +55 -0
- data/instructions.md +12 -0
- data/lib/clever-ruby.rb +89 -318
- data/lib/clever-ruby/api/data_api.rb +2090 -0
- data/lib/clever-ruby/api/events_api.rb +429 -0
- data/lib/clever-ruby/api_client.rb +401 -0
- data/lib/clever-ruby/api_error.rb +37 -0
- data/lib/clever-ruby/configuration.rb +187 -25
- data/lib/clever-ruby/models/bad_request.rb +187 -0
- data/lib/clever-ruby/models/district.rb +205 -0
- data/lib/clever-ruby/models/district_admin.rb +223 -0
- data/lib/clever-ruby/models/district_admin_response.rb +187 -0
- data/lib/clever-ruby/models/district_admins_response.rb +189 -0
- data/lib/clever-ruby/models/district_object.rb +187 -0
- data/lib/clever-ruby/models/district_response.rb +187 -0
- data/lib/clever-ruby/models/district_status.rb +250 -0
- data/lib/clever-ruby/models/district_status_response.rb +187 -0
- data/lib/clever-ruby/models/districts_created.rb +206 -0
- data/lib/clever-ruby/models/districts_deleted.rb +207 -0
- data/lib/clever-ruby/models/districts_response.rb +189 -0
- data/lib/clever-ruby/models/districts_updated.rb +207 -0
- data/lib/clever-ruby/models/event.rb +201 -0
- data/lib/clever-ruby/models/event_response.rb +187 -0
- data/lib/clever-ruby/models/events_response.rb +189 -0
- data/lib/clever-ruby/models/grade_levels_response.rb +189 -0
- data/lib/clever-ruby/models/internal_error.rb +187 -0
- data/lib/clever-ruby/models/location.rb +232 -0
- data/lib/clever-ruby/models/name.rb +205 -0
- data/lib/clever-ruby/models/not_found.rb +187 -0
- data/lib/clever-ruby/models/principal.rb +196 -0
- data/lib/clever-ruby/models/school.rb +313 -0
- data/lib/clever-ruby/models/school_admin.rb +243 -0
- data/lib/clever-ruby/models/school_admin_object.rb +187 -0
- data/lib/clever-ruby/models/school_admin_response.rb +187 -0
- data/lib/clever-ruby/models/school_admins_response.rb +189 -0
- data/lib/clever-ruby/models/school_object.rb +187 -0
- data/lib/clever-ruby/models/school_response.rb +187 -0
- data/lib/clever-ruby/models/schooladmins_created.rb +207 -0
- data/lib/clever-ruby/models/schooladmins_deleted.rb +207 -0
- data/lib/clever-ruby/models/schooladmins_updated.rb +207 -0
- data/lib/clever-ruby/models/schools_created.rb +207 -0
- data/lib/clever-ruby/models/schools_deleted.rb +207 -0
- data/lib/clever-ruby/models/schools_response.rb +189 -0
- data/lib/clever-ruby/models/schools_updated.rb +207 -0
- data/lib/clever-ruby/models/section.rb +344 -0
- data/lib/clever-ruby/models/section_object.rb +187 -0
- data/lib/clever-ruby/models/section_response.rb +187 -0
- data/lib/clever-ruby/models/sections_created.rb +207 -0
- data/lib/clever-ruby/models/sections_deleted.rb +207 -0
- data/lib/clever-ruby/models/sections_response.rb +189 -0
- data/lib/clever-ruby/models/sections_updated.rb +207 -0
- data/lib/clever-ruby/models/student.rb +360 -0
- data/lib/clever-ruby/models/student_contact.rb +259 -0
- data/lib/clever-ruby/models/student_contact_object.rb +187 -0
- data/lib/clever-ruby/models/student_contact_response.rb +187 -0
- data/lib/clever-ruby/models/student_contacts_response.rb +189 -0
- data/lib/clever-ruby/models/student_object.rb +187 -0
- data/lib/clever-ruby/models/student_response.rb +187 -0
- data/lib/clever-ruby/models/studentcontacts_created.rb +207 -0
- data/lib/clever-ruby/models/studentcontacts_deleted.rb +207 -0
- data/lib/clever-ruby/models/studentcontacts_updated.rb +207 -0
- data/lib/clever-ruby/models/students_created.rb +196 -0
- data/lib/clever-ruby/models/students_deleted.rb +206 -0
- data/lib/clever-ruby/models/students_response.rb +189 -0
- data/lib/clever-ruby/models/students_updated.rb +207 -0
- data/lib/clever-ruby/models/teacher.rb +288 -0
- data/lib/clever-ruby/models/teacher_object.rb +187 -0
- data/lib/clever-ruby/models/teacher_response.rb +187 -0
- data/lib/clever-ruby/models/teachers_created.rb +207 -0
- data/lib/clever-ruby/models/teachers_deleted.rb +207 -0
- data/lib/clever-ruby/models/teachers_response.rb +189 -0
- data/lib/clever-ruby/models/teachers_updated.rb +207 -0
- data/lib/clever-ruby/models/term.rb +205 -0
- data/lib/clever-ruby/version.rb +12 -4
- data/override/api_client.rb +401 -0
- data/override/config.json +5 -0
- data/override/models/districts_created.rb +206 -0
- data/override/models/districts_deleted.rb +207 -0
- data/override/models/districts_updated.rb +207 -0
- data/override/models/schooladmins_created.rb +207 -0
- data/override/models/schooladmins_deleted.rb +207 -0
- data/override/models/schooladmins_updated.rb +207 -0
- data/override/models/schools_created.rb +207 -0
- data/override/models/schools_deleted.rb +207 -0
- data/override/models/schools_updated.rb +207 -0
- data/override/models/sections_created.rb +207 -0
- data/override/models/sections_deleted.rb +207 -0
- data/override/models/sections_updated.rb +207 -0
- data/override/models/studentcontacts_created.rb +207 -0
- data/override/models/studentcontacts_deleted.rb +207 -0
- data/override/models/studentcontacts_updated.rb +207 -0
- data/override/models/students_created.rb +196 -0
- data/override/models/students_deleted.rb +206 -0
- data/override/models/students_updated.rb +207 -0
- data/override/models/teachers_created.rb +207 -0
- data/override/models/teachers_deleted.rb +207 -0
- data/override/models/teachers_updated.rb +207 -0
- data/override/override.sh +9 -0
- data/sample/sample.rb +16 -0
- metadata +252 -293
- data/.document +0 -5
- data/.gitignore +0 -22
- data/.rubocop.yml +0 -4
- data/.yardopts +0 -2
- data/LICENSE.txt +0 -20
- data/lib/clever-ruby/api_operations/list.rb +0 -130
- data/lib/clever-ruby/api_operations/nested_list.rb +0 -95
- data/lib/clever-ruby/api_operations/page.rb +0 -71
- data/lib/clever-ruby/api_operations/pagelist.rb +0 -43
- data/lib/clever-ruby/api_operations/results_list.rb +0 -31
- data/lib/clever-ruby/api_resource.rb +0 -174
- data/lib/clever-ruby/clever_object.rb +0 -246
- data/lib/clever-ruby/district.rb +0 -75
- data/lib/clever-ruby/district_admin.rb +0 -45
- data/lib/clever-ruby/errors/api_connection_error.rb +0 -5
- data/lib/clever-ruby/errors/api_error.rb +0 -5
- data/lib/clever-ruby/errors/authentication_error.rb +0 -5
- data/lib/clever-ruby/errors/clever_error.rb +0 -52
- data/lib/clever-ruby/errors/invalid_request_error.rb +0 -17
- data/lib/clever-ruby/event.rb +0 -61
- data/lib/clever-ruby/json.rb +0 -34
- data/lib/clever-ruby/nested_resource.rb +0 -41
- data/lib/clever-ruby/school.rb +0 -17
- data/lib/clever-ruby/school_admin.rb +0 -19
- data/lib/clever-ruby/section.rb +0 -17
- data/lib/clever-ruby/student.rb +0 -30
- data/lib/clever-ruby/teacher.rb +0 -17
- data/lib/clever-ruby/util.rb +0 -108
- data/test/data/vcr_cassettes/Clever_APIOperations_List/counts_district_properly.yml +0 -52
- data/test/data/vcr_cassettes/Clever_APIOperations_List/counts_event_properly.yml +0 -52
- data/test/data/vcr_cassettes/Clever_APIOperations_List/counts_school_admin_properly.yml +0 -52
- data/test/data/vcr_cassettes/Clever_APIOperations_List/counts_school_properly.yml +0 -52
- data/test/data/vcr_cassettes/Clever_APIOperations_List/counts_section_properly.yml +0 -52
- data/test/data/vcr_cassettes/Clever_APIOperations_List/counts_student_properly.yml +0 -52
- data/test/data/vcr_cassettes/Clever_APIOperations_List/counts_teacher_properly.yml +0 -52
- data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_a_single_district.yml +0 -101
- data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_a_single_district_admin.yml +0 -90
- data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_a_single_event.yml +0 -124
- data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_a_single_school.yml +0 -113
- data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_a_single_school_admin.yml +0 -101
- data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_a_single_section.yml +0 -368
- data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_a_single_student.yml +0 -176
- data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_a_single_teacher.yml +0 -191
- data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_districts_by_page.yml +0 -101
- data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_districts_with_multiple_ids.yml +0 -101
- data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_events_by_page.yml +0 -122
- data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_events_with_multiple_ids.yml +0 -131
- data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_school_admins_by_page.yml +0 -101
- data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_school_admins_with_multiple_ids.yml +0 -101
- data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_schools_by_page.yml +0 -110
- data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_schools_with_multiple_ids.yml +0 -116
- data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_sections_by_page.yml +0 -1168
- data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_sections_with_multiple_ids.yml +0 -163
- data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_students_by_page.yml +0 -1207
- data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_students_with_multiple_ids.yml +0 -127
- data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_teachers_by_page.yml +0 -190
- data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_teachers_with_multiple_ids.yml +0 -131
- data/test/data/vcr_cassettes/Clever_APIOperations_List/retrieves_all_district.yml +0 -101
- data/test/data/vcr_cassettes/Clever_APIOperations_List/retrieves_all_event.yml +0 -122
- data/test/data/vcr_cassettes/Clever_APIOperations_List/retrieves_all_school.yml +0 -110
- data/test/data/vcr_cassettes/Clever_APIOperations_List/retrieves_all_school_admin.yml +0 -101
- data/test/data/vcr_cassettes/Clever_APIOperations_List/retrieves_all_section.yml +0 -1168
- data/test/data/vcr_cassettes/Clever_APIOperations_List/retrieves_all_student.yml +0 -1207
- data/test/data/vcr_cassettes/Clever_APIOperations_List/retrieves_all_teacher.yml +0 -190
- data/test/data/vcr_cassettes/Clever_District/pages_methods/pages_a_district_s_events.yml +0 -526
- data/test/data/vcr_cassettes/Clever_District/pages_methods/pages_a_district_s_schools.yml +0 -240
- data/test/data/vcr_cassettes/Clever_District/pages_methods/pages_a_district_s_sections.yml +0 -3674
- data/test/data/vcr_cassettes/Clever_District/pages_methods/pages_a_district_s_students.yml +0 -2387
- data/test/data/vcr_cassettes/Clever_District/pages_methods/pages_a_district_s_teachers.yml +0 -717
- data/test/data/vcr_cassettes/Clever_District_without_global_token/pages_methods/pages_a_district_s_events.yml +0 -152
- data/test/data/vcr_cassettes/Clever_District_without_global_token/pages_methods/pages_a_district_s_schools.yml +0 -211
- data/test/data/vcr_cassettes/Clever_District_without_global_token/pages_methods/pages_a_district_s_sections.yml +0 -3649
- data/test/data/vcr_cassettes/Clever_District_without_global_token/pages_methods/pages_a_district_s_students.yml +0 -2362
- data/test/data/vcr_cassettes/Clever_District_without_global_token/pages_methods/pages_a_district_s_teachers.yml +0 -688
- data/test/data/vcr_cassettes/Clever_District_without_global_token/retrieves_a_district_s_events.yml +0 -89
- data/test/data/vcr_cassettes/Clever_District_without_global_token/retrieves_a_district_s_school_admins.yml +0 -101
- data/test/data/vcr_cassettes/Clever_District_without_global_token/retrieves_a_district_s_schools.yml +0 -164
- data/test/data/vcr_cassettes/Clever_District_without_global_token/retrieves_a_district_s_sections.yml +0 -1168
- data/test/data/vcr_cassettes/Clever_District_without_global_token/retrieves_a_district_s_students.yml +0 -1207
- data/test/data/vcr_cassettes/Clever_District_without_global_token/retrieves_a_district_s_teachers.yml +0 -324
- data/test/data/vcr_cassettes/Clever_NestedResource/must_include_auth_token_in_linked_resources.yml +0 -197
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_district_s_events.yml +0 -237
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_district_s_schools.yml +0 -217
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_district_s_sections.yml +0 -2333
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_district_s_students.yml +0 -2411
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_district_s_teachers.yml +0 -377
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_school_admin_s_schools.yml +0 -205
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_school_s_district.yml +0 -162
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_school_s_events.yml +0 -215
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_school_s_sections.yml +0 -1153
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_school_s_students.yml +0 -1081
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_school_s_teachers.yml +0 -283
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_section_s_district.yml +0 -417
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_section_s_events.yml +0 -470
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_section_s_school.yml +0 -420
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_section_s_students.yml +0 -482
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_section_s_teacher.yml +0 -418
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_student_s_district.yml +0 -226
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_student_s_events.yml +0 -279
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_student_s_school.yml +0 -229
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_student_s_sections.yml +0 -301
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_student_s_teachers.yml +0 -277
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_teacher_s_district.yml +0 -240
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_teacher_s_events.yml +0 -293
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_teacher_s_school.yml +0 -243
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_teacher_s_sections.yml +0 -321
- data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_teacher_s_students.yml +0 -323
- data/test/data/vcr_cassettes/Error_handling/raises_an_InvalidRequestError_when_given_a_bad_created_since.yml +0 -151
- data/test/data/vcr_cassettes/Optional_attributes/has_the_expected_value_for_an_optional_attribute_that_is_present.yml +0 -55
- data/test/data/vcr_cassettes/last_method/page/has_working_first_and_last_methods.yml +0 -800
- data/test/integration/api_operations/list_test.rb +0 -117
- data/test/integration/district_test.rb +0 -53
- data/test/integration/district_with_non_global_token_test.rb +0 -88
- data/test/integration/error_handling_test.rb +0 -17
- data/test/integration/last_test.rb +0 -56
- data/test/integration/nested_resource_test.rb +0 -31
- data/test/test_helper.rb +0 -18
- data/test/unit/api_resource_test.rb +0 -48
- data/test/unit/clever_test.rb +0 -65
- data/test/unit/configuration_test.rb +0 -37
- data/test/unit/event_test.rb +0 -57
- data/test/unit/optional_attributes_test.rb +0 -27
@@ -0,0 +1,10 @@
|
|
1
|
+
# Clever::StudentcontactsDeleted
|
2
|
+
|
3
|
+
## Properties
|
4
|
+
Name | Type | Description | Notes
|
5
|
+
------------ | ------------- | ------------- | -------------
|
6
|
+
**type** | **String** | |
|
7
|
+
**id** | **String** | | [optional]
|
8
|
+
**data** | [**StudentContactObject**](StudentContactObject.md) | | [optional]
|
9
|
+
|
10
|
+
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# Clever::StudentcontactsUpdated
|
2
|
+
|
3
|
+
## Properties
|
4
|
+
Name | Type | Description | Notes
|
5
|
+
------------ | ------------- | ------------- | -------------
|
6
|
+
**type** | **String** | |
|
7
|
+
**id** | **String** | | [optional]
|
8
|
+
**data** | [**StudentContactObject**](StudentContactObject.md) | | [optional]
|
9
|
+
|
10
|
+
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# Clever::StudentsCreated
|
2
|
+
|
3
|
+
## Properties
|
4
|
+
Name | Type | Description | Notes
|
5
|
+
------------ | ------------- | ------------- | -------------
|
6
|
+
**type** | **String** | |
|
7
|
+
**id** | **String** | | [optional]
|
8
|
+
**data** | [**StudentObject**](StudentObject.md) | | [optional]
|
9
|
+
|
10
|
+
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# Clever::StudentsDeleted
|
2
|
+
|
3
|
+
## Properties
|
4
|
+
Name | Type | Description | Notes
|
5
|
+
------------ | ------------- | ------------- | -------------
|
6
|
+
**type** | **String** | |
|
7
|
+
**id** | **String** | | [optional]
|
8
|
+
**data** | [**StudentObject**](StudentObject.md) | | [optional]
|
9
|
+
|
10
|
+
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# Clever::StudentsUpdated
|
2
|
+
|
3
|
+
## Properties
|
4
|
+
Name | Type | Description | Notes
|
5
|
+
------------ | ------------- | ------------- | -------------
|
6
|
+
**type** | **String** | |
|
7
|
+
**id** | **String** | | [optional]
|
8
|
+
**data** | [**StudentObject**](StudentObject.md) | | [optional]
|
9
|
+
|
10
|
+
|
data/docs/Teacher.md
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# Clever::Teacher
|
2
|
+
|
3
|
+
## Properties
|
4
|
+
Name | Type | Description | Notes
|
5
|
+
------------ | ------------- | ------------- | -------------
|
6
|
+
**id** | **String** | | [optional]
|
7
|
+
**created** | **String** | | [optional]
|
8
|
+
**district** | **String** | | [optional]
|
9
|
+
**email** | **String** | | [optional]
|
10
|
+
**last_modified** | **String** | | [optional]
|
11
|
+
**name** | [**Name**](Name.md) | | [optional]
|
12
|
+
**school** | **String** | | [optional]
|
13
|
+
**schools** | **Array<String>** | | [optional]
|
14
|
+
**sis_id** | **String** | | [optional]
|
15
|
+
**state_id** | **String** | | [optional]
|
16
|
+
**teacher_number** | **String** | | [optional]
|
17
|
+
**title** | **String** | | [optional]
|
18
|
+
|
19
|
+
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# Clever::TeachersCreated
|
2
|
+
|
3
|
+
## Properties
|
4
|
+
Name | Type | Description | Notes
|
5
|
+
------------ | ------------- | ------------- | -------------
|
6
|
+
**type** | **String** | |
|
7
|
+
**id** | **String** | | [optional]
|
8
|
+
**data** | [**TeacherObject**](TeacherObject.md) | | [optional]
|
9
|
+
|
10
|
+
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# Clever::TeachersDeleted
|
2
|
+
|
3
|
+
## Properties
|
4
|
+
Name | Type | Description | Notes
|
5
|
+
------------ | ------------- | ------------- | -------------
|
6
|
+
**type** | **String** | |
|
7
|
+
**id** | **String** | | [optional]
|
8
|
+
**data** | [**TeacherObject**](TeacherObject.md) | | [optional]
|
9
|
+
|
10
|
+
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# Clever::TeachersUpdated
|
2
|
+
|
3
|
+
## Properties
|
4
|
+
Name | Type | Description | Notes
|
5
|
+
------------ | ------------- | ------------- | -------------
|
6
|
+
**type** | **String** | |
|
7
|
+
**id** | **String** | | [optional]
|
8
|
+
**data** | [**TeacherObject**](TeacherObject.md) | | [optional]
|
9
|
+
|
10
|
+
|
data/docs/Term.md
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
# Clever::Term
|
2
|
+
|
3
|
+
## Properties
|
4
|
+
Name | Type | Description | Notes
|
5
|
+
------------ | ------------- | ------------- | -------------
|
6
|
+
**name** | **String** | | [optional]
|
7
|
+
**start_date** | **String** | | [optional]
|
8
|
+
**end_date** | **String** | | [optional]
|
9
|
+
|
10
|
+
|
data/git_push.sh
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
#
|
3
|
+
# Generated by: https://github.com/swagger-api/swagger-codegen.git
|
4
|
+
#
|
5
|
+
# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/
|
6
|
+
#
|
7
|
+
# Usage example: /bin/sh ./git_push.sh wing328 swagger-petstore-perl "minor update"
|
8
|
+
|
9
|
+
git_user_id=$1
|
10
|
+
git_repo_id=$2
|
11
|
+
release_note=$3
|
12
|
+
|
13
|
+
if [ "$git_user_id" = "" ]; then
|
14
|
+
git_user_id="GIT_USER_ID"
|
15
|
+
echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id"
|
16
|
+
fi
|
17
|
+
|
18
|
+
if [ "$git_repo_id" = "" ]; then
|
19
|
+
git_repo_id="GIT_REPO_ID"
|
20
|
+
echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id"
|
21
|
+
fi
|
22
|
+
|
23
|
+
if [ "$release_note" = "" ]; then
|
24
|
+
release_note="Minor update"
|
25
|
+
echo "[INFO] No command line input provided. Set \$release_note to $release_note"
|
26
|
+
fi
|
27
|
+
|
28
|
+
# Initialize the local directory as a Git repository
|
29
|
+
git init
|
30
|
+
|
31
|
+
# Adds the files in the local repository and stages them for commit.
|
32
|
+
git add .
|
33
|
+
|
34
|
+
# Commits the tracked changes and prepares them to be pushed to a remote repository.
|
35
|
+
git commit -m "$release_note"
|
36
|
+
|
37
|
+
# Sets the new remote
|
38
|
+
git_remote=`git remote`
|
39
|
+
if [ "$git_remote" = "" ]; then # git remote not defined
|
40
|
+
|
41
|
+
if [ "$GIT_TOKEN" = "" ]; then
|
42
|
+
echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git crediential in your environment."
|
43
|
+
git remote add origin https://github.com/${git_user_id}/${git_repo_id}.git
|
44
|
+
else
|
45
|
+
git remote add origin https://${git_user_id}:${GIT_TOKEN}@github.com/${git_user_id}/${git_repo_id}.git
|
46
|
+
fi
|
47
|
+
|
48
|
+
fi
|
49
|
+
|
50
|
+
git pull origin master
|
51
|
+
|
52
|
+
# Pushes (Forces) the changes in the local repository up to the remote repository
|
53
|
+
echo "Git pushing to https://github.com/${git_user_id}/${git_repo_id}.git"
|
54
|
+
git push origin master 2>&1 | grep -v 'To https'
|
55
|
+
|
data/instructions.md
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
## Updating the Library
|
2
|
+
|
3
|
+
1. Git clone swagger-codegen (https://github.com/swagger-api/swagger-codegen)
|
4
|
+
|
5
|
+
2. Git clone Clever's swagger-api repo (https://github.com/Clever/swagger-api)
|
6
|
+
|
7
|
+
3. Run this command in the swagger-codegen repo
|
8
|
+
```
|
9
|
+
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate -i $PATH_TO_SWAGGER_API_REPO/v1.2-client.yml -c $PATH_TO_THIS_REPO/override/config.json -l ruby -o $PATH_TO_THIS_REPO
|
10
|
+
```
|
11
|
+
|
12
|
+
4. Run `make build` to copy over the override files
|
data/lib/clever-ruby.rb
CHANGED
@@ -1,334 +1,105 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require 'multi_json'
|
4
|
-
require 'open-uri'
|
5
|
-
require 'set'
|
6
|
-
require 'uri'
|
7
|
-
require 'cgi'
|
8
|
-
require 'json'
|
1
|
+
=begin
|
2
|
+
#Clever API
|
9
3
|
|
10
|
-
|
4
|
+
#The Clever API
|
11
5
|
|
12
|
-
|
13
|
-
require 'clever-ruby/api_operations/list'
|
14
|
-
require 'clever-ruby/api_operations/nested_list'
|
15
|
-
require 'clever-ruby/api_operations/pagelist'
|
16
|
-
require 'clever-ruby/api_operations/results_list'
|
17
|
-
require 'clever-ruby/api_operations/page'
|
6
|
+
OpenAPI spec version: 1.2.0
|
18
7
|
|
19
|
-
|
20
|
-
require 'clever-ruby/util'
|
21
|
-
require 'clever-ruby/json'
|
22
|
-
require 'clever-ruby/configuration'
|
8
|
+
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
23
9
|
|
24
|
-
|
25
|
-
require 'clever-ruby/clever_object'
|
26
|
-
require 'clever-ruby/api_resource'
|
27
|
-
require 'clever-ruby/nested_resource'
|
28
|
-
require 'clever-ruby/district'
|
29
|
-
require 'clever-ruby/school'
|
30
|
-
require 'clever-ruby/student'
|
31
|
-
require 'clever-ruby/section'
|
32
|
-
require 'clever-ruby/teacher'
|
33
|
-
require 'clever-ruby/event'
|
34
|
-
require 'clever-ruby/school_admin'
|
35
|
-
require 'clever-ruby/district_admin'
|
10
|
+
=end
|
36
11
|
|
37
|
-
#
|
38
|
-
require 'clever-ruby/
|
12
|
+
# Common files
|
13
|
+
require 'clever-ruby/api_client'
|
14
|
+
require 'clever-ruby/api_error'
|
15
|
+
require 'clever-ruby/version'
|
16
|
+
require 'clever-ruby/configuration'
|
39
17
|
|
40
|
-
|
41
|
-
require 'clever-ruby/
|
42
|
-
require 'clever-ruby/
|
43
|
-
require 'clever-ruby/
|
18
|
+
# Models
|
19
|
+
require 'clever-ruby/models/bad_request'
|
20
|
+
require 'clever-ruby/models/district'
|
21
|
+
require 'clever-ruby/models/district_admin'
|
22
|
+
require 'clever-ruby/models/district_admin_response'
|
23
|
+
require 'clever-ruby/models/district_admins_response'
|
24
|
+
require 'clever-ruby/models/district_object'
|
25
|
+
require 'clever-ruby/models/district_response'
|
26
|
+
require 'clever-ruby/models/district_status'
|
27
|
+
require 'clever-ruby/models/district_status_response'
|
28
|
+
require 'clever-ruby/models/districts_created'
|
29
|
+
require 'clever-ruby/models/districts_deleted'
|
30
|
+
require 'clever-ruby/models/districts_response'
|
31
|
+
require 'clever-ruby/models/districts_updated'
|
32
|
+
require 'clever-ruby/models/event'
|
33
|
+
require 'clever-ruby/models/event_response'
|
34
|
+
require 'clever-ruby/models/events_response'
|
35
|
+
require 'clever-ruby/models/grade_levels_response'
|
36
|
+
require 'clever-ruby/models/internal_error'
|
37
|
+
require 'clever-ruby/models/location'
|
38
|
+
require 'clever-ruby/models/name'
|
39
|
+
require 'clever-ruby/models/not_found'
|
40
|
+
require 'clever-ruby/models/principal'
|
41
|
+
require 'clever-ruby/models/school'
|
42
|
+
require 'clever-ruby/models/school_admin'
|
43
|
+
require 'clever-ruby/models/school_admin_object'
|
44
|
+
require 'clever-ruby/models/school_admin_response'
|
45
|
+
require 'clever-ruby/models/school_admins_response'
|
46
|
+
require 'clever-ruby/models/school_object'
|
47
|
+
require 'clever-ruby/models/school_response'
|
48
|
+
require 'clever-ruby/models/schooladmins_created'
|
49
|
+
require 'clever-ruby/models/schooladmins_deleted'
|
50
|
+
require 'clever-ruby/models/schooladmins_updated'
|
51
|
+
require 'clever-ruby/models/schools_created'
|
52
|
+
require 'clever-ruby/models/schools_deleted'
|
53
|
+
require 'clever-ruby/models/schools_response'
|
54
|
+
require 'clever-ruby/models/schools_updated'
|
55
|
+
require 'clever-ruby/models/section'
|
56
|
+
require 'clever-ruby/models/section_object'
|
57
|
+
require 'clever-ruby/models/section_response'
|
58
|
+
require 'clever-ruby/models/sections_created'
|
59
|
+
require 'clever-ruby/models/sections_deleted'
|
60
|
+
require 'clever-ruby/models/sections_response'
|
61
|
+
require 'clever-ruby/models/sections_updated'
|
62
|
+
require 'clever-ruby/models/student'
|
63
|
+
require 'clever-ruby/models/student_contact'
|
64
|
+
require 'clever-ruby/models/student_contact_object'
|
65
|
+
require 'clever-ruby/models/student_contact_response'
|
66
|
+
require 'clever-ruby/models/student_contacts_response'
|
67
|
+
require 'clever-ruby/models/student_object'
|
68
|
+
require 'clever-ruby/models/student_response'
|
69
|
+
require 'clever-ruby/models/studentcontacts_created'
|
70
|
+
require 'clever-ruby/models/studentcontacts_deleted'
|
71
|
+
require 'clever-ruby/models/studentcontacts_updated'
|
72
|
+
require 'clever-ruby/models/students_created'
|
73
|
+
require 'clever-ruby/models/students_deleted'
|
74
|
+
require 'clever-ruby/models/students_response'
|
75
|
+
require 'clever-ruby/models/students_updated'
|
76
|
+
require 'clever-ruby/models/teacher'
|
77
|
+
require 'clever-ruby/models/teacher_object'
|
78
|
+
require 'clever-ruby/models/teacher_response'
|
79
|
+
require 'clever-ruby/models/teachers_created'
|
80
|
+
require 'clever-ruby/models/teachers_deleted'
|
81
|
+
require 'clever-ruby/models/teachers_response'
|
82
|
+
require 'clever-ruby/models/teachers_updated'
|
83
|
+
require 'clever-ruby/models/term'
|
84
|
+
|
85
|
+
# APIs
|
86
|
+
require 'clever-ruby/api/data_api'
|
87
|
+
require 'clever-ruby/api/events_api'
|
44
88
|
|
45
|
-
# Clever Ruby library
|
46
89
|
module Clever
|
47
90
|
class << self
|
48
|
-
#
|
49
|
-
# @api public
|
50
|
-
# @example Configure your API key
|
91
|
+
# Customize default settings for the SDK using block.
|
51
92
|
# Clever.configure do |config|
|
52
|
-
# config.
|
93
|
+
# config.username = "xxx"
|
94
|
+
# config.password = "xxx"
|
53
95
|
# end
|
54
|
-
#
|
96
|
+
# If no block given, return the default Configuration object.
|
55
97
|
def configure
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
# @api private
|
61
|
-
# @return [String] API key
|
62
|
-
def api_key
|
63
|
-
configuration.api_key
|
64
|
-
end
|
65
|
-
|
66
|
-
# Retrieve the configured timeout
|
67
|
-
# @api private
|
68
|
-
# @return [Fixnum] Configuration timeout
|
69
|
-
def timeout
|
70
|
-
configuration.timeout
|
71
|
-
end
|
72
|
-
|
73
|
-
# Retrieve the configured open timeout
|
74
|
-
# @api private
|
75
|
-
# @return [Fixnum] Open timeout
|
76
|
-
def open_timeout
|
77
|
-
configuration.open_timeout
|
78
|
-
end
|
79
|
-
|
80
|
-
# Retrieve your stored API token
|
81
|
-
# @api private
|
82
|
-
# @return [String] API token
|
83
|
-
def token
|
84
|
-
configuration.token
|
85
|
-
end
|
86
|
-
|
87
|
-
# Retrieve the global Clever configuration object
|
88
|
-
# @api private
|
89
|
-
# @return [Hash] API configuration object
|
90
|
-
def configuration
|
91
|
-
@configuration ||= Clever::Configuration.new
|
92
|
-
end
|
93
|
-
|
94
|
-
# Retrieve the URL of the Clever API being used
|
95
|
-
# @api private
|
96
|
-
# @return [String] API url
|
97
|
-
def api_url(url = '')
|
98
|
-
configuration.api_base + url
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
# Convert a hash of params to a query string. Does not prepend the leading '?'
|
103
|
-
# @api private
|
104
|
-
# @param params [Hash] Parameters to stringify
|
105
|
-
# @return [String] Query string
|
106
|
-
def self.convert_to_query_string(params = nil)
|
107
|
-
if params && params.count
|
108
|
-
params_arr = Util.flatten_params(params).map do |p|
|
109
|
-
"#{URI.encode(p[0].to_s)}=#{URI.encode(p[1].to_s)}"
|
110
|
-
end
|
111
|
-
params_arr.join('&')
|
112
|
-
else
|
113
|
-
''
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
# Generate the URL and payload for a request based on data about the request
|
118
|
-
# @api private
|
119
|
-
# @param method [Symbol] HTTP method used
|
120
|
-
# @param url [String] URL to send to
|
121
|
-
# @param params [Hash] Parameters to send
|
122
|
-
# @return [String, String] URL and payload to send via HTTP
|
123
|
-
def self.create_payload(method, url, params)
|
124
|
-
case method.to_s.downcase.to_sym
|
125
|
-
when :get, :head, :delete
|
126
|
-
url_obj = URI.parse(url)
|
127
|
-
if url_obj.query
|
128
|
-
params = CGI.parse(url_obj.query).map { |k, v| { k => v[0] } }.reduce(:merge).merge params
|
129
|
-
end
|
130
|
-
url_obj.query = convert_to_query_string params
|
131
|
-
url = url_obj.to_s
|
132
|
-
payload = nil
|
133
|
-
else
|
134
|
-
payload = params
|
135
|
-
end
|
136
|
-
[url, payload]
|
137
|
-
end
|
138
|
-
|
139
|
-
# Headers hash for user-agent tracking
|
140
|
-
# @api private
|
141
|
-
# @return [Hash] headers to add to request
|
142
|
-
def self.tracking_headers
|
143
|
-
{
|
144
|
-
bindings_version: Clever::VERSION,
|
145
|
-
lang: 'ruby',
|
146
|
-
lang_version: RUBY_VERSION.to_s + ' p' + RUBY_PATCHLEVEL.to_s,
|
147
|
-
platform: RUBY_PLATFORM.to_s,
|
148
|
-
publisher: 'clever',
|
149
|
-
uname: uname
|
150
|
-
}
|
151
|
-
end
|
152
|
-
|
153
|
-
# Retrieves system's uname
|
154
|
-
# @api private
|
155
|
-
# @return [String] uname with the system's uname
|
156
|
-
def self.uname
|
157
|
-
`uname -a 2>/dev/null`.strip if RUBY_PLATFORM =~ /linux|darwin/i
|
158
|
-
rescue SystemCallError
|
159
|
-
'cannot get uname'
|
160
|
-
end
|
161
|
-
|
162
|
-
# Create options hash that specifies an HTTP request from request data
|
163
|
-
# @api private
|
164
|
-
# @return [Hash] parameters for executing a request
|
165
|
-
def self.create_request_opts(method, url, params, headers)
|
166
|
-
params = Util.objects_to_ids params
|
167
|
-
url = api_url url
|
168
|
-
url, payload = create_payload method, url, params
|
169
|
-
|
170
|
-
headers[:Authorization] = 'Bearer ' + Clever.token if Clever.token
|
171
|
-
headers[:user_agent] = 'Clever/RubyBindings/' + Clever::VERSION
|
172
|
-
headers[:x_clever_client_user_agent] = tracking_headers.to_json
|
173
|
-
|
174
|
-
opts = {
|
175
|
-
method: method,
|
176
|
-
url: url,
|
177
|
-
headers: headers,
|
178
|
-
open_timeout: Clever.open_timeout,
|
179
|
-
payload: payload,
|
180
|
-
timeout: Clever.timeout
|
181
|
-
}
|
182
|
-
if Clever.api_key
|
183
|
-
opts[:user] = Clever.api_key
|
184
|
-
opts[:password] = ''
|
185
|
-
end
|
186
|
-
opts
|
187
|
-
end
|
188
|
-
|
189
|
-
# Confirm API key or token are globally configured
|
190
|
-
# @api private
|
191
|
-
# @return [nil]
|
192
|
-
# @raise [AuthenticationError] Error if no authentication present
|
193
|
-
def self.check_authorization(headers)
|
194
|
-
unless Clever.api_key || Clever.token || headers.key?(:Authorization)
|
195
|
-
fail AuthenticationError, 'No API key provided. (HINT: set your API key using '\
|
196
|
-
'"Clever.configure { |config| config.api_key = <API-KEY> }" or your token using '\
|
197
|
-
'"Clever.configure { |config| config.token = <TOKEN> }" '\
|
198
|
-
'or pass the district token as a second argument to retrieve)'
|
199
|
-
end
|
200
|
-
end
|
201
|
-
|
202
|
-
# Send an HTTP request to the Clever API
|
203
|
-
# @api private
|
204
|
-
# @param method [Symbol] HTTP method used
|
205
|
-
# @param url [String] URL to send to
|
206
|
-
# @param params [Hash] parameters to send with the request
|
207
|
-
# @param headers [Hash] headers to send with the request
|
208
|
-
# @return [Hash] parsed JSON response
|
209
|
-
# @raise [APIError] Error if API fails to return valid JSON
|
210
|
-
def self.request(method, url, params = nil, headers = {})
|
211
|
-
check_authorization(headers)
|
212
|
-
opts = create_request_opts method, url, params, headers
|
213
|
-
response = execute_request opts
|
214
|
-
|
215
|
-
rbody = response.body
|
216
|
-
rcode = response.code
|
217
|
-
begin
|
218
|
-
resp = Clever::JSON.load rbody
|
219
|
-
rescue MultiJson::DecodeError
|
220
|
-
raise APIError.new(
|
221
|
-
"Invalid response object from API: #{rbody.inspect} (HTTP response code was #{rcode})",
|
222
|
-
rcode, rbody)
|
223
|
-
end
|
224
|
-
|
225
|
-
resp
|
226
|
-
end
|
227
|
-
|
228
|
-
private
|
229
|
-
|
230
|
-
# Execute an HTTP request safely
|
231
|
-
# @api private
|
232
|
-
# @param opts [Hash] Definition of the request to make
|
233
|
-
# @return [String] Request results
|
234
|
-
# @raise [APIConnectionError] Request failure
|
235
|
-
def self.execute_request(opts)
|
236
|
-
begin
|
237
|
-
request = RestClient::Request.execute opts
|
238
|
-
rescue SocketError => e
|
239
|
-
handle_restclient_error e
|
240
|
-
rescue NoMethodError => e
|
241
|
-
# TODO: investigate
|
242
|
-
# Work around RestClient bug
|
243
|
-
if e.message =~ /\WRequestFailed\W/
|
244
|
-
handle_restclient_error APIConnectionError.new 'Unexpected HTTP response code'
|
245
|
-
else raise
|
98
|
+
if block_given?
|
99
|
+
yield(Configuration.default)
|
100
|
+
else
|
101
|
+
Configuration.default
|
246
102
|
end
|
247
|
-
rescue RestClient::ExceptionWithResponse => e
|
248
|
-
rcode = e.http_code
|
249
|
-
rbody = e.http_body
|
250
|
-
if rcode && rbody
|
251
|
-
handle_api_error rcode, rbody
|
252
|
-
else handle_restclient_error e
|
253
|
-
end
|
254
|
-
rescue RestClient::Exception, Errno::ECONNREFUSED => e
|
255
|
-
handle_restclient_error e
|
256
103
|
end
|
257
|
-
|
258
|
-
request
|
259
|
-
end
|
260
|
-
|
261
|
-
# Translate errors thrown by RestClient into standardized APIConnectionErrors
|
262
|
-
# @api private
|
263
|
-
# @param e [Error] Error to handle
|
264
|
-
# @return [nil]
|
265
|
-
# @raise [APIConnectionError] Standardized error for request failures
|
266
|
-
def self.handle_restclient_error(e)
|
267
|
-
case e
|
268
|
-
when RestClient::ServerBrokeConnection, RestClient::RequestTimeout
|
269
|
-
message = "Could not connect to Clever (#{configuration.api_base}). " \
|
270
|
-
'Please check your internet connection and try again.'
|
271
|
-
when SocketError
|
272
|
-
message = 'Unexpected error communicating when trying to connect to Clever. HINT: ' \
|
273
|
-
'You may be seeing this message because your DNS is not working. To check, try running ' \
|
274
|
-
"'host api.clever.com' from the command line."
|
275
|
-
else
|
276
|
-
message = 'Unexpected error communicating with Clever.'
|
277
|
-
end
|
278
|
-
message += "\n\n(Network error: #{e.message})"
|
279
|
-
fail APIConnectionError, message
|
280
|
-
end
|
281
|
-
|
282
|
-
# Translate errors returned as JSON by the Clever API into CleverErrors
|
283
|
-
# @api private
|
284
|
-
# @param rcode [Integer] response code
|
285
|
-
# @param rbody [String] response body
|
286
|
-
# @return [nil]
|
287
|
-
# @raise [CleverError] Clever error corresponding to the failure observed
|
288
|
-
def self.handle_api_error(rcode, rbody)
|
289
|
-
begin
|
290
|
-
error_obj = Clever::JSON.load rbody
|
291
|
-
error = error_obj[:error]
|
292
|
-
fail CleverError unless error # escape from parsing
|
293
|
-
rescue MultiJson::DecodeError, CleverError
|
294
|
-
raise APIError.new(
|
295
|
-
"Invalid response object from API: #{rbody.inspect} (HTTP response code was #{rcode})",
|
296
|
-
rcode, rbody)
|
297
|
-
end
|
298
|
-
|
299
|
-
case rcode
|
300
|
-
when 400, 404 then
|
301
|
-
fail invalid_request_error error, rcode, rbody, error_obj
|
302
|
-
when 401
|
303
|
-
fail authentication_error error, rcode, rbody, error_obj
|
304
|
-
else
|
305
|
-
fail api_error error, rcode, rbody, error_obj
|
306
|
-
end
|
307
|
-
end
|
308
|
-
|
309
|
-
# Generate an InvalidRequestError
|
310
|
-
# @api private
|
311
|
-
# @return [InvalidRequestError]
|
312
|
-
def self.invalid_request_error(error, rcode, rbody, error_obj)
|
313
|
-
if error.is_a? Hash
|
314
|
-
InvalidRequestError.new error[:message], error[:param], rcode, rbody, error_obj
|
315
|
-
else
|
316
|
-
InvalidRequestError.new error, '', rcode, rbody, error_obj
|
317
|
-
end
|
318
|
-
end
|
319
|
-
|
320
|
-
# Generate an AuthenticationError
|
321
|
-
# @api private
|
322
|
-
# @return [AuthenticationError]
|
323
|
-
def self.authentication_error(error, rcode, rbody, error_obj)
|
324
|
-
AuthenticationError.new(error, rcode, rbody, error_obj)
|
325
|
-
end
|
326
|
-
|
327
|
-
# Generate an APIError
|
328
|
-
# @api private
|
329
|
-
# @return [APIError]
|
330
|
-
def self.api_error(error, rcode, rbody, error_obj)
|
331
|
-
error_msg = error.is_a?(Hash) ? error[:message] : error
|
332
|
-
APIError.new(error_msg, rcode, rbody, error_obj)
|
333
104
|
end
|
334
105
|
end
|