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.
Files changed (297) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/Gemfile +4 -1
  4. data/Makefile +10 -0
  5. data/README.md +175 -68
  6. data/Rakefile +6 -36
  7. data/circle.yml +1 -1
  8. data/clever-ruby.gemspec +43 -33
  9. data/docs/BadRequest.md +8 -0
  10. data/docs/DataApi.md +2144 -0
  11. data/docs/District.md +10 -0
  12. data/docs/DistrictAdmin.md +12 -0
  13. data/docs/DistrictAdminResponse.md +8 -0
  14. data/docs/DistrictAdminsResponse.md +8 -0
  15. data/docs/DistrictObject.md +8 -0
  16. data/docs/DistrictResponse.md +8 -0
  17. data/docs/DistrictStatus.md +15 -0
  18. data/docs/DistrictStatusResponse.md +8 -0
  19. data/docs/DistrictsCreated.md +10 -0
  20. data/docs/DistrictsDeleted.md +10 -0
  21. data/docs/DistrictsResponse.md +8 -0
  22. data/docs/DistrictsUpdated.md +10 -0
  23. data/docs/Event.md +9 -0
  24. data/docs/EventResponse.md +8 -0
  25. data/docs/EventsApi.md +424 -0
  26. data/docs/EventsResponse.md +8 -0
  27. data/docs/GradeLevelsResponse.md +8 -0
  28. data/docs/InternalError.md +8 -0
  29. data/docs/Location.md +13 -0
  30. data/docs/Name.md +10 -0
  31. data/docs/NotFound.md +8 -0
  32. data/docs/Principal.md +9 -0
  33. data/docs/School.md +22 -0
  34. data/docs/SchoolAdmin.md +14 -0
  35. data/docs/SchoolAdminObject.md +8 -0
  36. data/docs/SchoolAdminResponse.md +8 -0
  37. data/docs/SchoolAdminsResponse.md +8 -0
  38. data/docs/SchoolObject.md +8 -0
  39. data/docs/SchoolResponse.md +8 -0
  40. data/docs/SchooladminsCreated.md +10 -0
  41. data/docs/SchooladminsDeleted.md +10 -0
  42. data/docs/SchooladminsUpdated.md +10 -0
  43. data/docs/SchoolsCreated.md +10 -0
  44. data/docs/SchoolsDeleted.md +10 -0
  45. data/docs/SchoolsResponse.md +8 -0
  46. data/docs/SchoolsUpdated.md +10 -0
  47. data/docs/Section.md +25 -0
  48. data/docs/SectionObject.md +8 -0
  49. data/docs/SectionResponse.md +8 -0
  50. data/docs/SectionsCreated.md +10 -0
  51. data/docs/SectionsDeleted.md +10 -0
  52. data/docs/SectionsResponse.md +8 -0
  53. data/docs/SectionsUpdated.md +10 -0
  54. data/docs/Student.md +27 -0
  55. data/docs/StudentContact.md +16 -0
  56. data/docs/StudentContactObject.md +8 -0
  57. data/docs/StudentContactResponse.md +8 -0
  58. data/docs/StudentContactsResponse.md +8 -0
  59. data/docs/StudentObject.md +8 -0
  60. data/docs/StudentResponse.md +8 -0
  61. data/docs/StudentcontactsCreated.md +10 -0
  62. data/docs/StudentcontactsDeleted.md +10 -0
  63. data/docs/StudentcontactsUpdated.md +10 -0
  64. data/docs/StudentsCreated.md +10 -0
  65. data/docs/StudentsDeleted.md +10 -0
  66. data/docs/StudentsResponse.md +8 -0
  67. data/docs/StudentsUpdated.md +10 -0
  68. data/docs/Teacher.md +19 -0
  69. data/docs/TeacherObject.md +8 -0
  70. data/docs/TeacherResponse.md +8 -0
  71. data/docs/TeachersCreated.md +10 -0
  72. data/docs/TeachersDeleted.md +10 -0
  73. data/docs/TeachersResponse.md +8 -0
  74. data/docs/TeachersUpdated.md +10 -0
  75. data/docs/Term.md +10 -0
  76. data/git_push.sh +55 -0
  77. data/instructions.md +12 -0
  78. data/lib/clever-ruby.rb +89 -318
  79. data/lib/clever-ruby/api/data_api.rb +2090 -0
  80. data/lib/clever-ruby/api/events_api.rb +429 -0
  81. data/lib/clever-ruby/api_client.rb +401 -0
  82. data/lib/clever-ruby/api_error.rb +37 -0
  83. data/lib/clever-ruby/configuration.rb +187 -25
  84. data/lib/clever-ruby/models/bad_request.rb +187 -0
  85. data/lib/clever-ruby/models/district.rb +205 -0
  86. data/lib/clever-ruby/models/district_admin.rb +223 -0
  87. data/lib/clever-ruby/models/district_admin_response.rb +187 -0
  88. data/lib/clever-ruby/models/district_admins_response.rb +189 -0
  89. data/lib/clever-ruby/models/district_object.rb +187 -0
  90. data/lib/clever-ruby/models/district_response.rb +187 -0
  91. data/lib/clever-ruby/models/district_status.rb +250 -0
  92. data/lib/clever-ruby/models/district_status_response.rb +187 -0
  93. data/lib/clever-ruby/models/districts_created.rb +206 -0
  94. data/lib/clever-ruby/models/districts_deleted.rb +207 -0
  95. data/lib/clever-ruby/models/districts_response.rb +189 -0
  96. data/lib/clever-ruby/models/districts_updated.rb +207 -0
  97. data/lib/clever-ruby/models/event.rb +201 -0
  98. data/lib/clever-ruby/models/event_response.rb +187 -0
  99. data/lib/clever-ruby/models/events_response.rb +189 -0
  100. data/lib/clever-ruby/models/grade_levels_response.rb +189 -0
  101. data/lib/clever-ruby/models/internal_error.rb +187 -0
  102. data/lib/clever-ruby/models/location.rb +232 -0
  103. data/lib/clever-ruby/models/name.rb +205 -0
  104. data/lib/clever-ruby/models/not_found.rb +187 -0
  105. data/lib/clever-ruby/models/principal.rb +196 -0
  106. data/lib/clever-ruby/models/school.rb +313 -0
  107. data/lib/clever-ruby/models/school_admin.rb +243 -0
  108. data/lib/clever-ruby/models/school_admin_object.rb +187 -0
  109. data/lib/clever-ruby/models/school_admin_response.rb +187 -0
  110. data/lib/clever-ruby/models/school_admins_response.rb +189 -0
  111. data/lib/clever-ruby/models/school_object.rb +187 -0
  112. data/lib/clever-ruby/models/school_response.rb +187 -0
  113. data/lib/clever-ruby/models/schooladmins_created.rb +207 -0
  114. data/lib/clever-ruby/models/schooladmins_deleted.rb +207 -0
  115. data/lib/clever-ruby/models/schooladmins_updated.rb +207 -0
  116. data/lib/clever-ruby/models/schools_created.rb +207 -0
  117. data/lib/clever-ruby/models/schools_deleted.rb +207 -0
  118. data/lib/clever-ruby/models/schools_response.rb +189 -0
  119. data/lib/clever-ruby/models/schools_updated.rb +207 -0
  120. data/lib/clever-ruby/models/section.rb +344 -0
  121. data/lib/clever-ruby/models/section_object.rb +187 -0
  122. data/lib/clever-ruby/models/section_response.rb +187 -0
  123. data/lib/clever-ruby/models/sections_created.rb +207 -0
  124. data/lib/clever-ruby/models/sections_deleted.rb +207 -0
  125. data/lib/clever-ruby/models/sections_response.rb +189 -0
  126. data/lib/clever-ruby/models/sections_updated.rb +207 -0
  127. data/lib/clever-ruby/models/student.rb +360 -0
  128. data/lib/clever-ruby/models/student_contact.rb +259 -0
  129. data/lib/clever-ruby/models/student_contact_object.rb +187 -0
  130. data/lib/clever-ruby/models/student_contact_response.rb +187 -0
  131. data/lib/clever-ruby/models/student_contacts_response.rb +189 -0
  132. data/lib/clever-ruby/models/student_object.rb +187 -0
  133. data/lib/clever-ruby/models/student_response.rb +187 -0
  134. data/lib/clever-ruby/models/studentcontacts_created.rb +207 -0
  135. data/lib/clever-ruby/models/studentcontacts_deleted.rb +207 -0
  136. data/lib/clever-ruby/models/studentcontacts_updated.rb +207 -0
  137. data/lib/clever-ruby/models/students_created.rb +196 -0
  138. data/lib/clever-ruby/models/students_deleted.rb +206 -0
  139. data/lib/clever-ruby/models/students_response.rb +189 -0
  140. data/lib/clever-ruby/models/students_updated.rb +207 -0
  141. data/lib/clever-ruby/models/teacher.rb +288 -0
  142. data/lib/clever-ruby/models/teacher_object.rb +187 -0
  143. data/lib/clever-ruby/models/teacher_response.rb +187 -0
  144. data/lib/clever-ruby/models/teachers_created.rb +207 -0
  145. data/lib/clever-ruby/models/teachers_deleted.rb +207 -0
  146. data/lib/clever-ruby/models/teachers_response.rb +189 -0
  147. data/lib/clever-ruby/models/teachers_updated.rb +207 -0
  148. data/lib/clever-ruby/models/term.rb +205 -0
  149. data/lib/clever-ruby/version.rb +12 -4
  150. data/override/api_client.rb +401 -0
  151. data/override/config.json +5 -0
  152. data/override/models/districts_created.rb +206 -0
  153. data/override/models/districts_deleted.rb +207 -0
  154. data/override/models/districts_updated.rb +207 -0
  155. data/override/models/schooladmins_created.rb +207 -0
  156. data/override/models/schooladmins_deleted.rb +207 -0
  157. data/override/models/schooladmins_updated.rb +207 -0
  158. data/override/models/schools_created.rb +207 -0
  159. data/override/models/schools_deleted.rb +207 -0
  160. data/override/models/schools_updated.rb +207 -0
  161. data/override/models/sections_created.rb +207 -0
  162. data/override/models/sections_deleted.rb +207 -0
  163. data/override/models/sections_updated.rb +207 -0
  164. data/override/models/studentcontacts_created.rb +207 -0
  165. data/override/models/studentcontacts_deleted.rb +207 -0
  166. data/override/models/studentcontacts_updated.rb +207 -0
  167. data/override/models/students_created.rb +196 -0
  168. data/override/models/students_deleted.rb +206 -0
  169. data/override/models/students_updated.rb +207 -0
  170. data/override/models/teachers_created.rb +207 -0
  171. data/override/models/teachers_deleted.rb +207 -0
  172. data/override/models/teachers_updated.rb +207 -0
  173. data/override/override.sh +9 -0
  174. data/sample/sample.rb +16 -0
  175. metadata +252 -293
  176. data/.document +0 -5
  177. data/.gitignore +0 -22
  178. data/.rubocop.yml +0 -4
  179. data/.yardopts +0 -2
  180. data/LICENSE.txt +0 -20
  181. data/lib/clever-ruby/api_operations/list.rb +0 -130
  182. data/lib/clever-ruby/api_operations/nested_list.rb +0 -95
  183. data/lib/clever-ruby/api_operations/page.rb +0 -71
  184. data/lib/clever-ruby/api_operations/pagelist.rb +0 -43
  185. data/lib/clever-ruby/api_operations/results_list.rb +0 -31
  186. data/lib/clever-ruby/api_resource.rb +0 -174
  187. data/lib/clever-ruby/clever_object.rb +0 -246
  188. data/lib/clever-ruby/district.rb +0 -75
  189. data/lib/clever-ruby/district_admin.rb +0 -45
  190. data/lib/clever-ruby/errors/api_connection_error.rb +0 -5
  191. data/lib/clever-ruby/errors/api_error.rb +0 -5
  192. data/lib/clever-ruby/errors/authentication_error.rb +0 -5
  193. data/lib/clever-ruby/errors/clever_error.rb +0 -52
  194. data/lib/clever-ruby/errors/invalid_request_error.rb +0 -17
  195. data/lib/clever-ruby/event.rb +0 -61
  196. data/lib/clever-ruby/json.rb +0 -34
  197. data/lib/clever-ruby/nested_resource.rb +0 -41
  198. data/lib/clever-ruby/school.rb +0 -17
  199. data/lib/clever-ruby/school_admin.rb +0 -19
  200. data/lib/clever-ruby/section.rb +0 -17
  201. data/lib/clever-ruby/student.rb +0 -30
  202. data/lib/clever-ruby/teacher.rb +0 -17
  203. data/lib/clever-ruby/util.rb +0 -108
  204. data/test/data/vcr_cassettes/Clever_APIOperations_List/counts_district_properly.yml +0 -52
  205. data/test/data/vcr_cassettes/Clever_APIOperations_List/counts_event_properly.yml +0 -52
  206. data/test/data/vcr_cassettes/Clever_APIOperations_List/counts_school_admin_properly.yml +0 -52
  207. data/test/data/vcr_cassettes/Clever_APIOperations_List/counts_school_properly.yml +0 -52
  208. data/test/data/vcr_cassettes/Clever_APIOperations_List/counts_section_properly.yml +0 -52
  209. data/test/data/vcr_cassettes/Clever_APIOperations_List/counts_student_properly.yml +0 -52
  210. data/test/data/vcr_cassettes/Clever_APIOperations_List/counts_teacher_properly.yml +0 -52
  211. data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_a_single_district.yml +0 -101
  212. data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_a_single_district_admin.yml +0 -90
  213. data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_a_single_event.yml +0 -124
  214. data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_a_single_school.yml +0 -113
  215. data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_a_single_school_admin.yml +0 -101
  216. data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_a_single_section.yml +0 -368
  217. data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_a_single_student.yml +0 -176
  218. data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_a_single_teacher.yml +0 -191
  219. data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_districts_by_page.yml +0 -101
  220. data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_districts_with_multiple_ids.yml +0 -101
  221. data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_events_by_page.yml +0 -122
  222. data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_events_with_multiple_ids.yml +0 -131
  223. data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_school_admins_by_page.yml +0 -101
  224. data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_school_admins_with_multiple_ids.yml +0 -101
  225. data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_schools_by_page.yml +0 -110
  226. data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_schools_with_multiple_ids.yml +0 -116
  227. data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_sections_by_page.yml +0 -1168
  228. data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_sections_with_multiple_ids.yml +0 -163
  229. data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_students_by_page.yml +0 -1207
  230. data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_students_with_multiple_ids.yml +0 -127
  231. data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_teachers_by_page.yml +0 -190
  232. data/test/data/vcr_cassettes/Clever_APIOperations_List/finds_teachers_with_multiple_ids.yml +0 -131
  233. data/test/data/vcr_cassettes/Clever_APIOperations_List/retrieves_all_district.yml +0 -101
  234. data/test/data/vcr_cassettes/Clever_APIOperations_List/retrieves_all_event.yml +0 -122
  235. data/test/data/vcr_cassettes/Clever_APIOperations_List/retrieves_all_school.yml +0 -110
  236. data/test/data/vcr_cassettes/Clever_APIOperations_List/retrieves_all_school_admin.yml +0 -101
  237. data/test/data/vcr_cassettes/Clever_APIOperations_List/retrieves_all_section.yml +0 -1168
  238. data/test/data/vcr_cassettes/Clever_APIOperations_List/retrieves_all_student.yml +0 -1207
  239. data/test/data/vcr_cassettes/Clever_APIOperations_List/retrieves_all_teacher.yml +0 -190
  240. data/test/data/vcr_cassettes/Clever_District/pages_methods/pages_a_district_s_events.yml +0 -526
  241. data/test/data/vcr_cassettes/Clever_District/pages_methods/pages_a_district_s_schools.yml +0 -240
  242. data/test/data/vcr_cassettes/Clever_District/pages_methods/pages_a_district_s_sections.yml +0 -3674
  243. data/test/data/vcr_cassettes/Clever_District/pages_methods/pages_a_district_s_students.yml +0 -2387
  244. data/test/data/vcr_cassettes/Clever_District/pages_methods/pages_a_district_s_teachers.yml +0 -717
  245. data/test/data/vcr_cassettes/Clever_District_without_global_token/pages_methods/pages_a_district_s_events.yml +0 -152
  246. data/test/data/vcr_cassettes/Clever_District_without_global_token/pages_methods/pages_a_district_s_schools.yml +0 -211
  247. data/test/data/vcr_cassettes/Clever_District_without_global_token/pages_methods/pages_a_district_s_sections.yml +0 -3649
  248. data/test/data/vcr_cassettes/Clever_District_without_global_token/pages_methods/pages_a_district_s_students.yml +0 -2362
  249. data/test/data/vcr_cassettes/Clever_District_without_global_token/pages_methods/pages_a_district_s_teachers.yml +0 -688
  250. data/test/data/vcr_cassettes/Clever_District_without_global_token/retrieves_a_district_s_events.yml +0 -89
  251. data/test/data/vcr_cassettes/Clever_District_without_global_token/retrieves_a_district_s_school_admins.yml +0 -101
  252. data/test/data/vcr_cassettes/Clever_District_without_global_token/retrieves_a_district_s_schools.yml +0 -164
  253. data/test/data/vcr_cassettes/Clever_District_without_global_token/retrieves_a_district_s_sections.yml +0 -1168
  254. data/test/data/vcr_cassettes/Clever_District_without_global_token/retrieves_a_district_s_students.yml +0 -1207
  255. data/test/data/vcr_cassettes/Clever_District_without_global_token/retrieves_a_district_s_teachers.yml +0 -324
  256. data/test/data/vcr_cassettes/Clever_NestedResource/must_include_auth_token_in_linked_resources.yml +0 -197
  257. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_district_s_events.yml +0 -237
  258. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_district_s_schools.yml +0 -217
  259. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_district_s_sections.yml +0 -2333
  260. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_district_s_students.yml +0 -2411
  261. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_district_s_teachers.yml +0 -377
  262. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_school_admin_s_schools.yml +0 -205
  263. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_school_s_district.yml +0 -162
  264. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_school_s_events.yml +0 -215
  265. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_school_s_sections.yml +0 -1153
  266. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_school_s_students.yml +0 -1081
  267. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_school_s_teachers.yml +0 -283
  268. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_section_s_district.yml +0 -417
  269. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_section_s_events.yml +0 -470
  270. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_section_s_school.yml +0 -420
  271. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_section_s_students.yml +0 -482
  272. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_section_s_teacher.yml +0 -418
  273. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_student_s_district.yml +0 -226
  274. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_student_s_events.yml +0 -279
  275. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_student_s_school.yml +0 -229
  276. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_student_s_sections.yml +0 -301
  277. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_student_s_teachers.yml +0 -277
  278. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_teacher_s_district.yml +0 -240
  279. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_teacher_s_events.yml +0 -293
  280. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_teacher_s_school.yml +0 -243
  281. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_teacher_s_sections.yml +0 -321
  282. data/test/data/vcr_cassettes/Clever_NestedResource/retrieves_a_teacher_s_students.yml +0 -323
  283. data/test/data/vcr_cassettes/Error_handling/raises_an_InvalidRequestError_when_given_a_bad_created_since.yml +0 -151
  284. data/test/data/vcr_cassettes/Optional_attributes/has_the_expected_value_for_an_optional_attribute_that_is_present.yml +0 -55
  285. data/test/data/vcr_cassettes/last_method/page/has_working_first_and_last_methods.yml +0 -800
  286. data/test/integration/api_operations/list_test.rb +0 -117
  287. data/test/integration/district_test.rb +0 -53
  288. data/test/integration/district_with_non_global_token_test.rb +0 -88
  289. data/test/integration/error_handling_test.rb +0 -17
  290. data/test/integration/last_test.rb +0 -56
  291. data/test/integration/nested_resource_test.rb +0 -31
  292. data/test/test_helper.rb +0 -18
  293. data/test/unit/api_resource_test.rb +0 -48
  294. data/test/unit/clever_test.rb +0 -65
  295. data/test/unit/configuration_test.rb +0 -37
  296. data/test/unit/event_test.rb +0 -57
  297. 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,8 @@
1
+ # Clever::StudentsResponse
2
+
3
+ ## Properties
4
+ Name | Type | Description | Notes
5
+ ------------ | ------------- | ------------- | -------------
6
+ **data** | [**Array<StudentResponse>**](StudentResponse.md) | | [optional]
7
+
8
+
@@ -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
+
@@ -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,8 @@
1
+ # Clever::TeacherObject
2
+
3
+ ## Properties
4
+ Name | Type | Description | Notes
5
+ ------------ | ------------- | ------------- | -------------
6
+ **object** | [**Teacher**](Teacher.md) | | [optional]
7
+
8
+
@@ -0,0 +1,8 @@
1
+ # Clever::TeacherResponse
2
+
3
+ ## Properties
4
+ Name | Type | Description | Notes
5
+ ------------ | ------------- | ------------- | -------------
6
+ **data** | [**Teacher**](Teacher.md) | | [optional]
7
+
8
+
@@ -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,8 @@
1
+ # Clever::TeachersResponse
2
+
3
+ ## Properties
4
+ Name | Type | Description | Notes
5
+ ------------ | ------------- | ------------- | -------------
6
+ **data** | [**Array<TeacherResponse>**](TeacherResponse.md) | | [optional]
7
+
8
+
@@ -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
+
@@ -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
+
@@ -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
+
@@ -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
@@ -1,334 +1,105 @@
1
- # rubocop:disable FileName
2
- require 'rest_client'
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
- require 'clever-ruby/version'
4
+ #The Clever API
11
5
 
12
- # API operations
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
- # Helpers
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
- # Resources
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
- # Errors
38
- require 'clever-ruby/errors/clever_error'
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
- require 'clever-ruby/errors/api_connection_error'
41
- require 'clever-ruby/errors/api_error'
42
- require 'clever-ruby/errors/authentication_error'
43
- require 'clever-ruby/errors/invalid_request_error'
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
- # Global configuration for using Clever
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.api_key = 'YOUR-API-KEY'
93
+ # config.username = "xxx"
94
+ # config.password = "xxx"
53
95
  # end
54
- # @return [Object]
96
+ # If no block given, return the default Configuration object.
55
97
  def configure
56
- yield configuration
57
- end
58
-
59
- # Retrieve your stored API key
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