clever-ruby 0.14.0 → 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 (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,429 @@
1
+ =begin
2
+ #Clever API
3
+
4
+ #The Clever API
5
+
6
+ OpenAPI spec version: 1.2.0
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+
10
+ =end
11
+
12
+ require "uri"
13
+
14
+ module Clever
15
+ class EventsApi
16
+ attr_accessor :api_client
17
+
18
+ def initialize(api_client = ApiClient.default)
19
+ @api_client = api_client
20
+ end
21
+
22
+ # Retrieves a single event.
23
+ # Returns the specific event
24
+ # @param id
25
+ # @param [Hash] opts the optional parameters
26
+ # @return [EventResponse]
27
+ def get_event(id, opts = {})
28
+ data, _status_code, _headers = get_event_with_http_info(id, opts)
29
+ return data
30
+ end
31
+
32
+ # Retrieves a single event.
33
+ # Returns the specific event
34
+ # @param id
35
+ # @param [Hash] opts the optional parameters
36
+ # @return [Array<(EventResponse, Fixnum, Hash)>] EventResponse data, response status code and response headers
37
+ def get_event_with_http_info(id, opts = {})
38
+ if @api_client.config.debugging
39
+ @api_client.config.logger.debug "Calling API: EventsApi.get_event ..."
40
+ end
41
+ # verify the required parameter 'id' is set
42
+ fail ArgumentError, "Missing the required parameter 'id' when calling EventsApi.get_event" if id.nil?
43
+ # resource path
44
+ local_var_path = "/events/{id}".sub('{' + 'id' + '}', id.to_s)
45
+
46
+ # query parameters
47
+ query_params = {}
48
+
49
+ # header parameters
50
+ header_params = {}
51
+ # HTTP header 'Accept' (if needed)
52
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
53
+
54
+ # form parameters
55
+ form_params = {}
56
+
57
+ # http body (model)
58
+ post_body = nil
59
+ auth_names = ['oauth']
60
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path,
61
+ :header_params => header_params,
62
+ :query_params => query_params,
63
+ :form_params => form_params,
64
+ :body => post_body,
65
+ :auth_names => auth_names,
66
+ :return_type => 'EventResponse')
67
+ if @api_client.config.debugging
68
+ @api_client.config.logger.debug "API called: EventsApi#get_event\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
69
+ end
70
+ return data, status_code, headers
71
+ end
72
+
73
+ # Retrieves all events
74
+ # Returns a list of events
75
+ # @param [Hash] opts the optional parameters
76
+ # @option opts [Integer] :limit
77
+ # @option opts [String] :starting_after
78
+ # @option opts [String] :ending_before
79
+ # @return [EventsResponse]
80
+ def get_events(opts = {})
81
+ data, _status_code, _headers = get_events_with_http_info(opts)
82
+ return data
83
+ end
84
+
85
+ # Retrieves all events
86
+ # Returns a list of events
87
+ # @param [Hash] opts the optional parameters
88
+ # @option opts [Integer] :limit
89
+ # @option opts [String] :starting_after
90
+ # @option opts [String] :ending_before
91
+ # @return [Array<(EventsResponse, Fixnum, Hash)>] EventsResponse data, response status code and response headers
92
+ def get_events_with_http_info(opts = {})
93
+ if @api_client.config.debugging
94
+ @api_client.config.logger.debug "Calling API: EventsApi.get_events ..."
95
+ end
96
+ # resource path
97
+ local_var_path = "/events"
98
+
99
+ # query parameters
100
+ query_params = {}
101
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
102
+ query_params[:'starting_after'] = opts[:'starting_after'] if !opts[:'starting_after'].nil?
103
+ query_params[:'ending_before'] = opts[:'ending_before'] if !opts[:'ending_before'].nil?
104
+
105
+ # header parameters
106
+ header_params = {}
107
+ # HTTP header 'Accept' (if needed)
108
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
109
+
110
+ # form parameters
111
+ form_params = {}
112
+
113
+ # http body (model)
114
+ post_body = nil
115
+ auth_names = ['oauth']
116
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path,
117
+ :header_params => header_params,
118
+ :query_params => query_params,
119
+ :form_params => form_params,
120
+ :body => post_body,
121
+ :auth_names => auth_names,
122
+ :return_type => 'EventsResponse')
123
+ if @api_client.config.debugging
124
+ @api_client.config.logger.debug "API called: EventsApi#get_events\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
125
+ end
126
+ return data, status_code, headers
127
+ end
128
+
129
+ # Retrieves events for schools.
130
+ # Returns a list of events for a school
131
+ # @param id
132
+ # @param [Hash] opts the optional parameters
133
+ # @option opts [Integer] :limit
134
+ # @option opts [String] :starting_after
135
+ # @option opts [String] :ending_before
136
+ # @return [EventsResponse]
137
+ def get_events_for_school(id, opts = {})
138
+ data, _status_code, _headers = get_events_for_school_with_http_info(id, opts)
139
+ return data
140
+ end
141
+
142
+ # Retrieves events for schools.
143
+ # Returns a list of events for a school
144
+ # @param id
145
+ # @param [Hash] opts the optional parameters
146
+ # @option opts [Integer] :limit
147
+ # @option opts [String] :starting_after
148
+ # @option opts [String] :ending_before
149
+ # @return [Array<(EventsResponse, Fixnum, Hash)>] EventsResponse data, response status code and response headers
150
+ def get_events_for_school_with_http_info(id, opts = {})
151
+ if @api_client.config.debugging
152
+ @api_client.config.logger.debug "Calling API: EventsApi.get_events_for_school ..."
153
+ end
154
+ # verify the required parameter 'id' is set
155
+ fail ArgumentError, "Missing the required parameter 'id' when calling EventsApi.get_events_for_school" if id.nil?
156
+ # resource path
157
+ local_var_path = "/schools/{id}/events".sub('{' + 'id' + '}', id.to_s)
158
+
159
+ # query parameters
160
+ query_params = {}
161
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
162
+ query_params[:'starting_after'] = opts[:'starting_after'] if !opts[:'starting_after'].nil?
163
+ query_params[:'ending_before'] = opts[:'ending_before'] if !opts[:'ending_before'].nil?
164
+
165
+ # header parameters
166
+ header_params = {}
167
+ # HTTP header 'Accept' (if needed)
168
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
169
+
170
+ # form parameters
171
+ form_params = {}
172
+
173
+ # http body (model)
174
+ post_body = nil
175
+ auth_names = ['oauth']
176
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path,
177
+ :header_params => header_params,
178
+ :query_params => query_params,
179
+ :form_params => form_params,
180
+ :body => post_body,
181
+ :auth_names => auth_names,
182
+ :return_type => 'EventsResponse')
183
+ if @api_client.config.debugging
184
+ @api_client.config.logger.debug "API called: EventsApi#get_events_for_school\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
185
+ end
186
+ return data, status_code, headers
187
+ end
188
+
189
+ # Retrieves events for school_admins.
190
+ # Returns a list of events for a school admin
191
+ # @param id
192
+ # @param [Hash] opts the optional parameters
193
+ # @option opts [Integer] :limit
194
+ # @option opts [String] :starting_after
195
+ # @option opts [String] :ending_before
196
+ # @return [EventsResponse]
197
+ def get_events_for_school_admin(id, opts = {})
198
+ data, _status_code, _headers = get_events_for_school_admin_with_http_info(id, opts)
199
+ return data
200
+ end
201
+
202
+ # Retrieves events for school_admins.
203
+ # Returns a list of events for a school admin
204
+ # @param id
205
+ # @param [Hash] opts the optional parameters
206
+ # @option opts [Integer] :limit
207
+ # @option opts [String] :starting_after
208
+ # @option opts [String] :ending_before
209
+ # @return [Array<(EventsResponse, Fixnum, Hash)>] EventsResponse data, response status code and response headers
210
+ def get_events_for_school_admin_with_http_info(id, opts = {})
211
+ if @api_client.config.debugging
212
+ @api_client.config.logger.debug "Calling API: EventsApi.get_events_for_school_admin ..."
213
+ end
214
+ # verify the required parameter 'id' is set
215
+ fail ArgumentError, "Missing the required parameter 'id' when calling EventsApi.get_events_for_school_admin" if id.nil?
216
+ # resource path
217
+ local_var_path = "/school_admins/{id}/events".sub('{' + 'id' + '}', id.to_s)
218
+
219
+ # query parameters
220
+ query_params = {}
221
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
222
+ query_params[:'starting_after'] = opts[:'starting_after'] if !opts[:'starting_after'].nil?
223
+ query_params[:'ending_before'] = opts[:'ending_before'] if !opts[:'ending_before'].nil?
224
+
225
+ # header parameters
226
+ header_params = {}
227
+ # HTTP header 'Accept' (if needed)
228
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
229
+
230
+ # form parameters
231
+ form_params = {}
232
+
233
+ # http body (model)
234
+ post_body = nil
235
+ auth_names = ['oauth']
236
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path,
237
+ :header_params => header_params,
238
+ :query_params => query_params,
239
+ :form_params => form_params,
240
+ :body => post_body,
241
+ :auth_names => auth_names,
242
+ :return_type => 'EventsResponse')
243
+ if @api_client.config.debugging
244
+ @api_client.config.logger.debug "API called: EventsApi#get_events_for_school_admin\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
245
+ end
246
+ return data, status_code, headers
247
+ end
248
+
249
+ # Retrieves events for sections.
250
+ # Returns a list of events for a section
251
+ # @param id
252
+ # @param [Hash] opts the optional parameters
253
+ # @option opts [Integer] :limit
254
+ # @option opts [String] :starting_after
255
+ # @option opts [String] :ending_before
256
+ # @return [EventsResponse]
257
+ def get_events_for_section(id, opts = {})
258
+ data, _status_code, _headers = get_events_for_section_with_http_info(id, opts)
259
+ return data
260
+ end
261
+
262
+ # Retrieves events for sections.
263
+ # Returns a list of events for a section
264
+ # @param id
265
+ # @param [Hash] opts the optional parameters
266
+ # @option opts [Integer] :limit
267
+ # @option opts [String] :starting_after
268
+ # @option opts [String] :ending_before
269
+ # @return [Array<(EventsResponse, Fixnum, Hash)>] EventsResponse data, response status code and response headers
270
+ def get_events_for_section_with_http_info(id, opts = {})
271
+ if @api_client.config.debugging
272
+ @api_client.config.logger.debug "Calling API: EventsApi.get_events_for_section ..."
273
+ end
274
+ # verify the required parameter 'id' is set
275
+ fail ArgumentError, "Missing the required parameter 'id' when calling EventsApi.get_events_for_section" if id.nil?
276
+ # resource path
277
+ local_var_path = "/sections/{id}/events".sub('{' + 'id' + '}', id.to_s)
278
+
279
+ # query parameters
280
+ query_params = {}
281
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
282
+ query_params[:'starting_after'] = opts[:'starting_after'] if !opts[:'starting_after'].nil?
283
+ query_params[:'ending_before'] = opts[:'ending_before'] if !opts[:'ending_before'].nil?
284
+
285
+ # header parameters
286
+ header_params = {}
287
+ # HTTP header 'Accept' (if needed)
288
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
289
+
290
+ # form parameters
291
+ form_params = {}
292
+
293
+ # http body (model)
294
+ post_body = nil
295
+ auth_names = ['oauth']
296
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path,
297
+ :header_params => header_params,
298
+ :query_params => query_params,
299
+ :form_params => form_params,
300
+ :body => post_body,
301
+ :auth_names => auth_names,
302
+ :return_type => 'EventsResponse')
303
+ if @api_client.config.debugging
304
+ @api_client.config.logger.debug "API called: EventsApi#get_events_for_section\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
305
+ end
306
+ return data, status_code, headers
307
+ end
308
+
309
+ # Retrieves events for students.
310
+ # Returns a list of events for a student
311
+ # @param id
312
+ # @param [Hash] opts the optional parameters
313
+ # @option opts [Integer] :limit
314
+ # @option opts [String] :starting_after
315
+ # @option opts [String] :ending_before
316
+ # @return [EventsResponse]
317
+ def get_events_for_student(id, opts = {})
318
+ data, _status_code, _headers = get_events_for_student_with_http_info(id, opts)
319
+ return data
320
+ end
321
+
322
+ # Retrieves events for students.
323
+ # Returns a list of events for a student
324
+ # @param id
325
+ # @param [Hash] opts the optional parameters
326
+ # @option opts [Integer] :limit
327
+ # @option opts [String] :starting_after
328
+ # @option opts [String] :ending_before
329
+ # @return [Array<(EventsResponse, Fixnum, Hash)>] EventsResponse data, response status code and response headers
330
+ def get_events_for_student_with_http_info(id, opts = {})
331
+ if @api_client.config.debugging
332
+ @api_client.config.logger.debug "Calling API: EventsApi.get_events_for_student ..."
333
+ end
334
+ # verify the required parameter 'id' is set
335
+ fail ArgumentError, "Missing the required parameter 'id' when calling EventsApi.get_events_for_student" if id.nil?
336
+ # resource path
337
+ local_var_path = "/students/{id}/events".sub('{' + 'id' + '}', id.to_s)
338
+
339
+ # query parameters
340
+ query_params = {}
341
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
342
+ query_params[:'starting_after'] = opts[:'starting_after'] if !opts[:'starting_after'].nil?
343
+ query_params[:'ending_before'] = opts[:'ending_before'] if !opts[:'ending_before'].nil?
344
+
345
+ # header parameters
346
+ header_params = {}
347
+ # HTTP header 'Accept' (if needed)
348
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
349
+
350
+ # form parameters
351
+ form_params = {}
352
+
353
+ # http body (model)
354
+ post_body = nil
355
+ auth_names = ['oauth']
356
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path,
357
+ :header_params => header_params,
358
+ :query_params => query_params,
359
+ :form_params => form_params,
360
+ :body => post_body,
361
+ :auth_names => auth_names,
362
+ :return_type => 'EventsResponse')
363
+ if @api_client.config.debugging
364
+ @api_client.config.logger.debug "API called: EventsApi#get_events_for_student\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
365
+ end
366
+ return data, status_code, headers
367
+ end
368
+
369
+ # Retrieves events for teachers.
370
+ # Returns a list of events for a teacher
371
+ # @param id
372
+ # @param [Hash] opts the optional parameters
373
+ # @option opts [Integer] :limit
374
+ # @option opts [String] :starting_after
375
+ # @option opts [String] :ending_before
376
+ # @return [EventsResponse]
377
+ def get_events_for_teacher(id, opts = {})
378
+ data, _status_code, _headers = get_events_for_teacher_with_http_info(id, opts)
379
+ return data
380
+ end
381
+
382
+ # Retrieves events for teachers.
383
+ # Returns a list of events for a teacher
384
+ # @param id
385
+ # @param [Hash] opts the optional parameters
386
+ # @option opts [Integer] :limit
387
+ # @option opts [String] :starting_after
388
+ # @option opts [String] :ending_before
389
+ # @return [Array<(EventsResponse, Fixnum, Hash)>] EventsResponse data, response status code and response headers
390
+ def get_events_for_teacher_with_http_info(id, opts = {})
391
+ if @api_client.config.debugging
392
+ @api_client.config.logger.debug "Calling API: EventsApi.get_events_for_teacher ..."
393
+ end
394
+ # verify the required parameter 'id' is set
395
+ fail ArgumentError, "Missing the required parameter 'id' when calling EventsApi.get_events_for_teacher" if id.nil?
396
+ # resource path
397
+ local_var_path = "/teachers/{id}/events".sub('{' + 'id' + '}', id.to_s)
398
+
399
+ # query parameters
400
+ query_params = {}
401
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
402
+ query_params[:'starting_after'] = opts[:'starting_after'] if !opts[:'starting_after'].nil?
403
+ query_params[:'ending_before'] = opts[:'ending_before'] if !opts[:'ending_before'].nil?
404
+
405
+ # header parameters
406
+ header_params = {}
407
+ # HTTP header 'Accept' (if needed)
408
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
409
+
410
+ # form parameters
411
+ form_params = {}
412
+
413
+ # http body (model)
414
+ post_body = nil
415
+ auth_names = ['oauth']
416
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path,
417
+ :header_params => header_params,
418
+ :query_params => query_params,
419
+ :form_params => form_params,
420
+ :body => post_body,
421
+ :auth_names => auth_names,
422
+ :return_type => 'EventsResponse')
423
+ if @api_client.config.debugging
424
+ @api_client.config.logger.debug "API called: EventsApi#get_events_for_teacher\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
425
+ end
426
+ return data, status_code, headers
427
+ end
428
+ end
429
+ end
@@ -0,0 +1,401 @@
1
+ =begin
2
+ #Clever API
3
+
4
+ #The Clever API
5
+
6
+ OpenAPI spec version: 1.2.0
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+
10
+ =end
11
+
12
+ require 'date'
13
+ require 'json'
14
+ require 'logger'
15
+ require 'tempfile'
16
+ require 'typhoeus'
17
+ require 'uri'
18
+
19
+ module Clever
20
+ class ApiClient
21
+ # The Configuration object holding settings to be used in the API client.
22
+ attr_accessor :config
23
+
24
+ # Defines the headers to be used in HTTP requests of all API calls by default.
25
+ #
26
+ # @return [Hash]
27
+ attr_accessor :default_headers
28
+
29
+ # Initializes the ApiClient
30
+ # @option config [Configuration] Configuration for initializing the object, default to Configuration.default
31
+ def initialize(config = Configuration.default)
32
+ @config = config
33
+ @user_agent = "Swagger-Codegen/#{VERSION}/ruby"
34
+ @default_headers = {
35
+ 'Content-Type' => "application/json",
36
+ 'User-Agent' => @user_agent
37
+ }
38
+ end
39
+
40
+ def self.default
41
+ @@default ||= ApiClient.new
42
+ end
43
+
44
+ # Call an API with given options.
45
+ #
46
+ # @return [Array<(Object, Fixnum, Hash)>] an array of 3 elements:
47
+ # the data deserialized from response body (could be nil), response status code and response headers.
48
+ def call_api(http_method, path, opts = {})
49
+ request = build_request(http_method, path, opts)
50
+ response = request.run
51
+
52
+ if @config.debugging
53
+ @config.logger.debug "HTTP response body ~BEGIN~\n#{response.body}\n~END~\n"
54
+ end
55
+
56
+ unless response.success?
57
+ if response.timed_out?
58
+ fail ApiError.new('Connection timed out')
59
+ elsif response.code == 0
60
+ # Errors from libcurl will be made visible here
61
+ fail ApiError.new(:code => 0,
62
+ :message => response.return_message)
63
+ else
64
+ fail ApiError.new(:code => response.code,
65
+ :response_headers => response.headers,
66
+ :response_body => response.body),
67
+ response.status_message
68
+ end
69
+ end
70
+
71
+ if opts[:return_type]
72
+ data = deserialize(response, opts[:return_type])
73
+ else
74
+ data = nil
75
+ end
76
+ return data, response.code, response.headers
77
+ end
78
+
79
+ # Builds the HTTP request
80
+ #
81
+ # @param [String] http_method HTTP method/verb (e.g. POST)
82
+ # @param [String] path URL path (e.g. /account/new)
83
+ # @option opts [Hash] :header_params Header parameters
84
+ # @option opts [Hash] :query_params Query parameters
85
+ # @option opts [Hash] :form_params Query parameters
86
+ # @option opts [Object] :body HTTP body (JSON/XML)
87
+ # @return [Typhoeus::Request] A Typhoeus Request
88
+ def build_request(http_method, path, opts = {})
89
+ url = build_request_url(path)
90
+ http_method = http_method.to_sym.downcase
91
+
92
+ header_params = @default_headers.merge(opts[:header_params] || {})
93
+ query_params = opts[:query_params] || {}
94
+ form_params = opts[:form_params] || {}
95
+
96
+ update_params_for_auth! header_params, query_params, opts[:auth_names]
97
+
98
+ # set ssl_verifyhosts option based on @config.verify_ssl_host (true/false)
99
+ _verify_ssl_host = @config.verify_ssl_host ? 2 : 0
100
+
101
+ req_opts = {
102
+ :method => http_method,
103
+ :headers => header_params,
104
+ :params => query_params,
105
+ :params_encoding => @config.params_encoding,
106
+ :timeout => @config.timeout,
107
+ :ssl_verifypeer => @config.verify_ssl,
108
+ :ssl_verifyhost => _verify_ssl_host,
109
+ :sslcert => @config.cert_file,
110
+ :sslkey => @config.key_file,
111
+ :verbose => @config.debugging
112
+ }
113
+
114
+ # set custom cert, if provided
115
+ req_opts[:cainfo] = @config.ssl_ca_cert if @config.ssl_ca_cert
116
+
117
+ if [:post, :patch, :put, :delete].include?(http_method)
118
+ req_body = build_request_body(header_params, form_params, opts[:body])
119
+ req_opts.update :body => req_body
120
+ if @config.debugging
121
+ @config.logger.debug "HTTP request body param ~BEGIN~\n#{req_body}\n~END~\n"
122
+ end
123
+ end
124
+
125
+ Typhoeus::Request.new(url, req_opts)
126
+ end
127
+
128
+ # Check if the given MIME is a JSON MIME.
129
+ # JSON MIME examples:
130
+ # application/json
131
+ # application/json; charset=UTF8
132
+ # APPLICATION/JSON
133
+ # */*
134
+ # @param [String] mime MIME
135
+ # @return [Boolean] True if the MIME is application/json
136
+ def json_mime?(mime)
137
+ (mime == "*/*") || !(mime =~ /Application\/.*json(?!p)(;.*)?/i).nil?
138
+ end
139
+
140
+ # Deserialize the response to the given return type.
141
+ #
142
+ # @param [Response] response HTTP response
143
+ # @param [String] return_type some examples: "User", "Array[User]", "Hash[String,Integer]"
144
+ def deserialize(response, return_type)
145
+ body = response.body
146
+ return nil if body.nil? || body.empty?
147
+
148
+ # return response body directly for String return type
149
+ return body if return_type == 'String'
150
+
151
+ # handle file downloading - save response body into a tmp file and return the File instance
152
+ return download_file(response) if return_type == 'File'
153
+
154
+ # ensuring a default content type
155
+ content_type = response.headers['Content-Type'] || 'application/json'
156
+
157
+ fail "Content-Type is not supported: #{content_type}" unless json_mime?(content_type)
158
+
159
+ begin
160
+ data = JSON.parse("[#{body}]", :symbolize_names => true)[0]
161
+ rescue JSON::ParserError => e
162
+ if %w(String Date DateTime).include?(return_type)
163
+ data = body
164
+ else
165
+ raise e
166
+ end
167
+ end
168
+
169
+ convert_to_type data, return_type
170
+ end
171
+
172
+ # Convert data to the given return type.
173
+ # @param [Object] data Data to be converted
174
+ # @param [String] return_type Return type
175
+ # @return [Mixed] Data in a particular type
176
+ def convert_to_type(data, return_type)
177
+ return nil if data.nil?
178
+ case return_type
179
+ when 'String'
180
+ data.to_s
181
+ when 'Integer'
182
+ data.to_i
183
+ when 'Float'
184
+ data.to_f
185
+ when 'BOOLEAN'
186
+ data == true
187
+ when 'DateTime'
188
+ # parse date time (expecting ISO 8601 format)
189
+ DateTime.parse data
190
+ when 'Date'
191
+ # parse date time (expecting ISO 8601 format)
192
+ Date.parse data
193
+ when 'Object'
194
+ # generic object (usually a Hash), return directly
195
+ data
196
+ when /\AArray<(.+)>\z/
197
+ # e.g. Array<Pet>
198
+ sub_type = $1
199
+ data.map {|item| convert_to_type(item, sub_type) }
200
+ when /\AHash\<String, (.+)\>\z/
201
+ # e.g. Hash<String, Integer>
202
+ sub_type = $1
203
+ {}.tap do |hash|
204
+ data.each {|k, v| hash[k] = convert_to_type(v, sub_type) }
205
+ end
206
+ when 'EventsResponse'
207
+ Clever.const_get(return_type).new.tap do |model|
208
+ resp = model.build_from_hash data
209
+ resps = []
210
+ data[:data].each do |eventResponse|
211
+ singleResp = parse_event_response(eventResponse[:data])
212
+ resps.push(singleResp)
213
+ end
214
+ resp.data = resps
215
+ return resp
216
+ end
217
+ when 'EventResponse'
218
+ parse_event_response data[:data]
219
+ else
220
+ # models, e.g. Pet
221
+ Clever.const_get(return_type).new.tap do |model|
222
+ model.build_from_hash data
223
+ end
224
+ end
225
+ end
226
+
227
+ def parse_event_response(data)
228
+ classObj = data[:type].split(".").collect(&:capitalize).join
229
+ Clever.const_get(classObj).new.tap do |model|
230
+ parsed = model.build_from_hash data
231
+ Clever.const_get("EventsResponse").new.tap do |model|
232
+ resp = model.build_from_hash data
233
+ resp.data = parsed
234
+ return resp
235
+ end
236
+ end
237
+ end
238
+
239
+ # Save response body into a file in (the defined) temporary folder, using the filename
240
+ # from the "Content-Disposition" header if provided, otherwise a random filename.
241
+ #
242
+ # @see Configuration#temp_folder_path
243
+ # @return [Tempfile] the file downloaded
244
+ def download_file(response)
245
+ content_disposition = response.headers['Content-Disposition']
246
+ if content_disposition and content_disposition =~ /filename=/i
247
+ filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
248
+ prefix = sanitize_filename(filename)
249
+ else
250
+ prefix = 'download-'
251
+ end
252
+ prefix = prefix + '-' unless prefix.end_with?('-')
253
+
254
+ tempfile = nil
255
+ encoding = response.body.encoding
256
+ Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding) do |file|
257
+ file.write(response.body)
258
+ tempfile = file
259
+ end
260
+ @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
261
+ "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
262
+ "will be deleted automatically with GC. It's also recommended to delete the temp file "\
263
+ "explicitly with `tempfile.delete`"
264
+ tempfile
265
+ end
266
+
267
+ # Sanitize filename by removing path.
268
+ # e.g. ../../sun.gif becomes sun.gif
269
+ #
270
+ # @param [String] filename the filename to be sanitized
271
+ # @return [String] the sanitized filename
272
+ def sanitize_filename(filename)
273
+ filename.gsub(/.*[\/\\]/, '')
274
+ end
275
+
276
+ def build_request_url(path)
277
+ # Add leading and trailing slashes to path
278
+ path = "/#{path}".gsub(/\/+/, '/')
279
+ URI.encode(@config.base_url + path)
280
+ end
281
+
282
+ # Builds the HTTP request body
283
+ #
284
+ # @param [Hash] header_params Header parameters
285
+ # @param [Hash] form_params Query parameters
286
+ # @param [Object] body HTTP body (JSON/XML)
287
+ # @return [String] HTTP body data in the form of string
288
+ def build_request_body(header_params, form_params, body)
289
+ # http form
290
+ if header_params['Content-Type'] == 'application/x-www-form-urlencoded' ||
291
+ header_params['Content-Type'] == 'multipart/form-data'
292
+ data = {}
293
+ form_params.each do |key, value|
294
+ case value
295
+ when File, Array, nil
296
+ # let typhoeus handle File, Array and nil parameters
297
+ data[key] = value
298
+ else
299
+ data[key] = value.to_s
300
+ end
301
+ end
302
+ elsif body
303
+ data = body.is_a?(String) ? body : body.to_json
304
+ else
305
+ data = nil
306
+ end
307
+ data
308
+ end
309
+
310
+ # Update hearder and query params based on authentication settings.
311
+ #
312
+ # @param [Hash] header_params Header parameters
313
+ # @param [Hash] query_params Query parameters
314
+ # @param [String] auth_names Authentication scheme name
315
+ def update_params_for_auth!(header_params, query_params, auth_names)
316
+ Array(auth_names).each do |auth_name|
317
+ auth_setting = @config.auth_settings[auth_name]
318
+ next unless auth_setting
319
+ case auth_setting[:in]
320
+ when 'header' then header_params[auth_setting[:key]] = auth_setting[:value]
321
+ when 'query' then query_params[auth_setting[:key]] = auth_setting[:value]
322
+ else fail ArgumentError, 'Authentication token must be in `query` of `header`'
323
+ end
324
+ end
325
+ end
326
+
327
+ # Sets user agent in HTTP header
328
+ #
329
+ # @param [String] user_agent User agent (e.g. swagger-codegen/ruby/1.0.0)
330
+ def user_agent=(user_agent)
331
+ @user_agent = user_agent
332
+ @default_headers['User-Agent'] = @user_agent
333
+ end
334
+
335
+ # Return Accept header based on an array of accepts provided.
336
+ # @param [Array] accepts array for Accept
337
+ # @return [String] the Accept header (e.g. application/json)
338
+ def select_header_accept(accepts)
339
+ return nil if accepts.nil? || accepts.empty?
340
+ # use JSON when present, otherwise use all of the provided
341
+ json_accept = accepts.find { |s| json_mime?(s) }
342
+ return json_accept || accepts.join(',')
343
+ end
344
+
345
+ # Return Content-Type header based on an array of content types provided.
346
+ # @param [Array] content_types array for Content-Type
347
+ # @return [String] the Content-Type header (e.g. application/json)
348
+ def select_header_content_type(content_types)
349
+ # use application/json by default
350
+ return 'application/json' if content_types.nil? || content_types.empty?
351
+ # use JSON when present, otherwise use the first one
352
+ json_content_type = content_types.find { |s| json_mime?(s) }
353
+ return json_content_type || content_types.first
354
+ end
355
+
356
+ # Convert object (array, hash, object, etc) to JSON string.
357
+ # @param [Object] model object to be converted into JSON string
358
+ # @return [String] JSON string representation of the object
359
+ def object_to_http_body(model)
360
+ return model if model.nil? || model.is_a?(String)
361
+ local_body = nil
362
+ if model.is_a?(Array)
363
+ local_body = model.map{|m| object_to_hash(m) }
364
+ else
365
+ local_body = object_to_hash(model)
366
+ end
367
+ local_body.to_json
368
+ end
369
+
370
+ # Convert object(non-array) to hash.
371
+ # @param [Object] obj object to be converted into JSON string
372
+ # @return [String] JSON string representation of the object
373
+ def object_to_hash(obj)
374
+ if obj.respond_to?(:to_hash)
375
+ obj.to_hash
376
+ else
377
+ obj
378
+ end
379
+ end
380
+
381
+ # Build parameter value according to the given collection format.
382
+ # @param [String] collection_format one of :csv, :ssv, :tsv, :pipes and :multi
383
+ def build_collection_param(param, collection_format)
384
+ case collection_format
385
+ when :csv
386
+ param.join(',')
387
+ when :ssv
388
+ param.join(' ')
389
+ when :tsv
390
+ param.join("\t")
391
+ when :pipes
392
+ param.join('|')
393
+ when :multi
394
+ # return the array directly as typhoeus will handle it as expected
395
+ param
396
+ else
397
+ fail "unknown collection format: #{collection_format.inspect}"
398
+ end
399
+ end
400
+ end
401
+ end