clever-ruby 1.2.5 → 2.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 (171) hide show
  1. checksums.yaml +4 -4
  2. data/1.8, +0 -0
  3. data/= +0 -0
  4. data/CHANGELOG.md +3 -3
  5. data/Gemfile +0 -1
  6. data/Gemfile.lock +8 -9
  7. data/README.md +89 -70
  8. data/clever-ruby.gemspec +3 -4
  9. data/doc_coverage.txt +2 -0
  10. data/docs/{StudentContact.md → Contact.md} +2 -2
  11. data/docs/{GradeLevelsResponse.md → ContactObject.md} +2 -2
  12. data/docs/{StudentContactObject.md → ContactResponse.md} +2 -2
  13. data/docs/{StudentcontactsCreated.md → ContactsCreated.md} +2 -2
  14. data/docs/{StudentcontactsDeleted.md → ContactsDeleted.md} +2 -2
  15. data/docs/ContactsResponse.md +8 -0
  16. data/docs/{StudentcontactsUpdated.md → ContactsUpdated.md} +2 -2
  17. data/docs/Course.md +10 -0
  18. data/docs/{StudentContactResponse.md → CourseObject.md} +2 -2
  19. data/docs/CourseResponse.md +8 -0
  20. data/docs/CoursesCreated.md +11 -0
  21. data/docs/CoursesDeleted.md +11 -0
  22. data/docs/{StudentContactsForStudentResponse.md → CoursesResponse.md} +2 -2
  23. data/docs/CoursesUpdated.md +11 -0
  24. data/docs/DataApi.md +862 -182
  25. data/docs/District.md +8 -0
  26. data/docs/{DistrictStatusResponse.md → DistrictAdminObject.md} +2 -2
  27. data/docs/DistrictAdminsResponse.md +1 -1
  28. data/docs/DistrictadminsCreated.md +11 -0
  29. data/docs/DistrictadminsDeleted.md +11 -0
  30. data/docs/DistrictadminsUpdated.md +11 -0
  31. data/docs/EventsApi.md +6 -302
  32. data/docs/Section.md +2 -4
  33. data/docs/Term.md +1 -0
  34. data/docs/TermObject.md +8 -0
  35. data/docs/TermResponse.md +8 -0
  36. data/docs/TermsCreated.md +11 -0
  37. data/docs/TermsDeleted.md +11 -0
  38. data/docs/TermsResponse.md +8 -0
  39. data/docs/TermsUpdated.md +11 -0
  40. data/lib/clever-ruby.rb +26 -14
  41. data/lib/clever-ruby/api/data_api.rb +828 -132
  42. data/lib/clever-ruby/api/events_api.rb +8 -312
  43. data/lib/clever-ruby/api_client.rb +40 -27
  44. data/lib/clever-ruby/api_error.rb +2 -2
  45. data/lib/clever-ruby/configuration.rb +3 -3
  46. data/lib/clever-ruby/models/bad_request.rb +2 -2
  47. data/lib/clever-ruby/models/{student_contact.rb → contact.rb} +69 -10
  48. data/lib/clever-ruby/models/{student_contact_object.rb → contact_object.rb} +4 -4
  49. data/lib/clever-ruby/models/{student_contact_response.rb → contact_response.rb} +4 -4
  50. data/lib/clever-ruby/models/contacts_created.rb +221 -0
  51. data/lib/clever-ruby/models/contacts_deleted.rb +221 -0
  52. data/lib/clever-ruby/models/{student_contacts_response.rb → contacts_response.rb} +4 -4
  53. data/lib/clever-ruby/models/contacts_updated.rb +221 -0
  54. data/lib/clever-ruby/models/course.rb +206 -0
  55. data/lib/clever-ruby/models/course_object.rb +188 -0
  56. data/lib/clever-ruby/models/{district_status_response.rb → course_response.rb} +4 -4
  57. data/lib/clever-ruby/models/courses_created.rb +221 -0
  58. data/lib/clever-ruby/models/courses_deleted.rb +221 -0
  59. data/lib/clever-ruby/models/{district_status_responses.rb → courses_response.rb} +4 -4
  60. data/lib/clever-ruby/models/courses_updated.rb +221 -0
  61. data/lib/clever-ruby/models/credentials.rb +2 -2
  62. data/lib/clever-ruby/models/district.rb +111 -6
  63. data/lib/clever-ruby/models/district_admin.rb +2 -2
  64. data/lib/clever-ruby/models/district_admin_object.rb +188 -0
  65. data/lib/clever-ruby/models/district_admin_response.rb +2 -2
  66. data/lib/clever-ruby/models/district_admins_response.rb +3 -3
  67. data/lib/clever-ruby/models/district_object.rb +2 -2
  68. data/lib/clever-ruby/models/district_response.rb +2 -2
  69. data/lib/clever-ruby/models/districtadmins_created.rb +221 -0
  70. data/lib/clever-ruby/models/districtadmins_deleted.rb +221 -0
  71. data/lib/clever-ruby/models/districtadmins_updated.rb +221 -0
  72. data/lib/clever-ruby/models/districts_created.rb +22 -7
  73. data/lib/clever-ruby/models/districts_deleted.rb +22 -8
  74. data/lib/clever-ruby/models/districts_response.rb +2 -2
  75. data/lib/clever-ruby/models/districts_updated.rb +21 -7
  76. data/lib/clever-ruby/models/event.rb +2 -2
  77. data/lib/clever-ruby/models/event_response.rb +2 -2
  78. data/lib/clever-ruby/models/events_response.rb +2 -2
  79. data/lib/clever-ruby/models/internal_error.rb +2 -2
  80. data/lib/clever-ruby/models/location.rb +2 -2
  81. data/lib/clever-ruby/models/name.rb +2 -2
  82. data/lib/clever-ruby/models/not_found.rb +2 -2
  83. data/lib/clever-ruby/models/principal.rb +2 -2
  84. data/lib/clever-ruby/models/school.rb +2 -2
  85. data/lib/clever-ruby/models/school_admin.rb +2 -2
  86. data/lib/clever-ruby/models/school_admin_object.rb +2 -2
  87. data/lib/clever-ruby/models/school_admin_response.rb +2 -2
  88. data/lib/clever-ruby/models/school_admins_response.rb +2 -2
  89. data/lib/clever-ruby/models/school_object.rb +2 -2
  90. data/lib/clever-ruby/models/school_response.rb +2 -2
  91. data/lib/clever-ruby/models/schooladmins_created.rb +21 -7
  92. data/lib/clever-ruby/models/schooladmins_deleted.rb +21 -7
  93. data/lib/clever-ruby/models/schooladmins_updated.rb +21 -7
  94. data/lib/clever-ruby/models/schools_created.rb +21 -7
  95. data/lib/clever-ruby/models/schools_deleted.rb +21 -7
  96. data/lib/clever-ruby/models/schools_response.rb +2 -2
  97. data/lib/clever-ruby/models/schools_updated.rb +21 -7
  98. data/lib/clever-ruby/models/section.rb +15 -33
  99. data/lib/clever-ruby/models/section_object.rb +2 -2
  100. data/lib/clever-ruby/models/section_response.rb +2 -2
  101. data/lib/clever-ruby/models/sections_created.rb +21 -7
  102. data/lib/clever-ruby/models/sections_deleted.rb +21 -7
  103. data/lib/clever-ruby/models/sections_response.rb +2 -2
  104. data/lib/clever-ruby/models/sections_updated.rb +21 -7
  105. data/lib/clever-ruby/models/student.rb +4 -4
  106. data/lib/clever-ruby/models/student_object.rb +2 -2
  107. data/lib/clever-ruby/models/student_response.rb +2 -2
  108. data/lib/clever-ruby/models/students_created.rb +20 -7
  109. data/lib/clever-ruby/models/students_deleted.rb +22 -7
  110. data/lib/clever-ruby/models/students_response.rb +2 -2
  111. data/lib/clever-ruby/models/students_updated.rb +21 -7
  112. data/lib/clever-ruby/models/teacher.rb +2 -2
  113. data/lib/clever-ruby/models/teacher_object.rb +2 -2
  114. data/lib/clever-ruby/models/teacher_response.rb +2 -2
  115. data/lib/clever-ruby/models/teachers_created.rb +21 -7
  116. data/lib/clever-ruby/models/teachers_deleted.rb +21 -7
  117. data/lib/clever-ruby/models/teachers_response.rb +2 -2
  118. data/lib/clever-ruby/models/teachers_updated.rb +21 -7
  119. data/lib/clever-ruby/models/term.rb +12 -3
  120. data/lib/clever-ruby/models/term_object.rb +188 -0
  121. data/lib/clever-ruby/models/term_response.rb +188 -0
  122. data/lib/clever-ruby/models/{studentcontacts_updated.rb → terms_created.rb} +23 -9
  123. data/{override/models/studentcontacts_created.rb → lib/clever-ruby/models/terms_deleted.rb} +23 -9
  124. data/lib/clever-ruby/models/{grade_levels_response.rb → terms_response.rb} +4 -4
  125. data/lib/clever-ruby/models/{studentcontacts_created.rb → terms_updated.rb} +23 -9
  126. data/lib/clever-ruby/version.rb +3 -3
  127. data/override/README-extension.md +5 -5
  128. data/override/api_client.rb +40 -27
  129. data/override/models/contacts_created.rb +221 -0
  130. data/override/models/contacts_deleted.rb +221 -0
  131. data/override/models/contacts_updated.rb +221 -0
  132. data/override/models/courses_created.rb +221 -0
  133. data/override/models/courses_deleted.rb +221 -0
  134. data/override/models/courses_updated.rb +221 -0
  135. data/override/models/districtadmins_created.rb +221 -0
  136. data/override/models/districtadmins_deleted.rb +221 -0
  137. data/override/models/districtadmins_updated.rb +221 -0
  138. data/override/models/districts_created.rb +22 -7
  139. data/override/models/districts_deleted.rb +22 -8
  140. data/override/models/districts_updated.rb +21 -7
  141. data/override/models/schooladmins_created.rb +21 -7
  142. data/override/models/schooladmins_deleted.rb +21 -7
  143. data/override/models/schooladmins_updated.rb +21 -7
  144. data/override/models/schools_created.rb +21 -7
  145. data/override/models/schools_deleted.rb +21 -7
  146. data/override/models/schools_updated.rb +21 -7
  147. data/override/models/sections_created.rb +21 -7
  148. data/override/models/sections_deleted.rb +21 -7
  149. data/override/models/sections_updated.rb +21 -7
  150. data/override/models/students_created.rb +20 -7
  151. data/override/models/students_deleted.rb +22 -7
  152. data/override/models/students_updated.rb +21 -7
  153. data/override/models/teachers_created.rb +21 -7
  154. data/override/models/teachers_deleted.rb +21 -7
  155. data/override/models/teachers_updated.rb +21 -7
  156. data/{lib/clever-ruby/models/studentcontacts_deleted.rb → override/models/terms_created.rb} +23 -9
  157. data/override/models/terms_deleted.rb +221 -0
  158. data/override/models/terms_updated.rb +221 -0
  159. data/sample/sample.rb +2 -2
  160. data/spec/events_api_spec.rb +1 -1
  161. data/test.rb +1 -1
  162. metadata +111 -85
  163. data/clever-ruby-2.0.0.gem +0 -0
  164. data/docs/DistrictStatus.md +0 -15
  165. data/docs/DistrictStatusResponses.md +0 -8
  166. data/docs/StudentContactsResponse.md +0 -8
  167. data/lib/clever-ruby/models/district_status.rb +0 -284
  168. data/lib/clever-ruby/models/student_contacts_for_student_response.rb +0 -190
  169. data/override/models/studentcontacts_deleted.rb +0 -207
  170. data/override/models/studentcontacts_updated.rb +0 -207
  171. data/spec/data_api_spec.rb +0 -32
Binary file
@@ -1,15 +0,0 @@
1
- # Clever::DistrictStatus
2
-
3
- ## Properties
4
- Name | Type | Description | Notes
5
- ------------ | ------------- | ------------- | -------------
6
- **error** | **String** | | [optional]
7
- **id** | **String** | | [optional]
8
- **last_sync** | **String** | | [optional]
9
- **launch_date** | **String** | | [optional]
10
- **pause_end** | **String** | | [optional]
11
- **pause_start** | **String** | | [optional]
12
- **sis_type** | **String** | | [optional]
13
- **state** | **String** | | [optional]
14
-
15
-
@@ -1,8 +0,0 @@
1
- # Clever::DistrictStatusResponses
2
-
3
- ## Properties
4
- Name | Type | Description | Notes
5
- ------------ | ------------- | ------------- | -------------
6
- **data** | [**Array<DistrictStatusResponse>**](DistrictStatusResponse.md) | | [optional]
7
-
8
-
@@ -1,8 +0,0 @@
1
- # Clever::StudentContactsResponse
2
-
3
- ## Properties
4
- Name | Type | Description | Notes
5
- ------------ | ------------- | ------------- | -------------
6
- **data** | [**Array<StudentContactResponse>**](StudentContactResponse.md) | | [optional]
7
-
8
-
@@ -1,284 +0,0 @@
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
- Swagger Codegen version: 2.2.3
10
-
11
- =end
12
-
13
- require 'date'
14
-
15
- module Clever
16
-
17
- class DistrictStatus
18
- attr_accessor :error
19
-
20
- attr_accessor :id
21
-
22
- attr_accessor :last_sync
23
-
24
- attr_accessor :launch_date
25
-
26
- attr_accessor :pause_end
27
-
28
- attr_accessor :pause_start
29
-
30
- attr_accessor :sis_type
31
-
32
- attr_accessor :state
33
-
34
- class EnumAttributeValidator
35
- attr_reader :datatype
36
- attr_reader :allowable_values
37
-
38
- def initialize(datatype, allowable_values)
39
- @allowable_values = allowable_values.map do |value|
40
- case datatype.to_s
41
- when /Integer/i
42
- value.to_i
43
- when /Float/i
44
- value.to_f
45
- else
46
- value
47
- end
48
- end
49
- end
50
-
51
- def valid?(value)
52
- !value || allowable_values.include?(value)
53
- end
54
- end
55
-
56
- # Attribute mapping from ruby-style variable name to JSON key.
57
- def self.attribute_map
58
- {
59
- :'error' => :'error',
60
- :'id' => :'id',
61
- :'last_sync' => :'last_sync',
62
- :'launch_date' => :'launch_date',
63
- :'pause_end' => :'pause_end',
64
- :'pause_start' => :'pause_start',
65
- :'sis_type' => :'sis_type',
66
- :'state' => :'state'
67
- }
68
- end
69
-
70
- # Attribute type mapping.
71
- def self.swagger_types
72
- {
73
- :'error' => :'String',
74
- :'id' => :'String',
75
- :'last_sync' => :'String',
76
- :'launch_date' => :'String',
77
- :'pause_end' => :'String',
78
- :'pause_start' => :'String',
79
- :'sis_type' => :'String',
80
- :'state' => :'String'
81
- }
82
- end
83
-
84
- # Initializes the object
85
- # @param [Hash] attributes Model attributes in the form of hash
86
- def initialize(attributes = {})
87
- return unless attributes.is_a?(Hash)
88
-
89
- # convert string to symbol for hash key
90
- attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
91
-
92
- if attributes.has_key?(:'error')
93
- self.error = attributes[:'error']
94
- end
95
-
96
- if attributes.has_key?(:'id')
97
- self.id = attributes[:'id']
98
- end
99
-
100
- if attributes.has_key?(:'last_sync')
101
- self.last_sync = attributes[:'last_sync']
102
- end
103
-
104
- if attributes.has_key?(:'launch_date')
105
- self.launch_date = attributes[:'launch_date']
106
- end
107
-
108
- if attributes.has_key?(:'pause_end')
109
- self.pause_end = attributes[:'pause_end']
110
- end
111
-
112
- if attributes.has_key?(:'pause_start')
113
- self.pause_start = attributes[:'pause_start']
114
- end
115
-
116
- if attributes.has_key?(:'sis_type')
117
- self.sis_type = attributes[:'sis_type']
118
- end
119
-
120
- if attributes.has_key?(:'state')
121
- self.state = attributes[:'state']
122
- end
123
-
124
- end
125
-
126
- # Show invalid properties with the reasons. Usually used together with valid?
127
- # @return Array for valid properies with the reasons
128
- def list_invalid_properties
129
- invalid_properties = Array.new
130
- return invalid_properties
131
- end
132
-
133
- # Check to see if the all the properties in the model are valid
134
- # @return true if the model is valid
135
- def valid?
136
- state_validator = EnumAttributeValidator.new('String', ["running", "pending", "error", "paused"])
137
- return false unless state_validator.valid?(@state)
138
- return true
139
- end
140
-
141
- # Custom attribute writer method checking allowed values (enum).
142
- # @param [Object] state Object to be assigned
143
- def state=(state)
144
- validator = EnumAttributeValidator.new('String', ["running", "pending", "error", "paused"])
145
- unless validator.valid?(state)
146
- fail ArgumentError, "invalid value for 'state', must be one of #{validator.allowable_values}."
147
- end
148
- @state = state
149
- end
150
-
151
- # Checks equality by comparing each attribute.
152
- # @param [Object] Object to be compared
153
- def ==(o)
154
- return true if self.equal?(o)
155
- self.class == o.class &&
156
- error == o.error &&
157
- id == o.id &&
158
- last_sync == o.last_sync &&
159
- launch_date == o.launch_date &&
160
- pause_end == o.pause_end &&
161
- pause_start == o.pause_start &&
162
- sis_type == o.sis_type &&
163
- state == o.state
164
- end
165
-
166
- # @see the `==` method
167
- # @param [Object] Object to be compared
168
- def eql?(o)
169
- self == o
170
- end
171
-
172
- # Calculates hash code according to all attributes.
173
- # @return [Fixnum] Hash code
174
- def hash
175
- [error, id, last_sync, launch_date, pause_end, pause_start, sis_type, state].hash
176
- end
177
-
178
- # Builds the object from hash
179
- # @param [Hash] attributes Model attributes in the form of hash
180
- # @return [Object] Returns the model itself
181
- def build_from_hash(attributes)
182
- return nil unless attributes.is_a?(Hash)
183
- self.class.swagger_types.each_pair do |key, type|
184
- if type =~ /\AArray<(.*)>/i
185
- # check to ensure the input is an array given that the the attribute
186
- # is documented as an array but the input is not
187
- if attributes[self.class.attribute_map[key]].is_a?(Array)
188
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
189
- end
190
- elsif !attributes[self.class.attribute_map[key]].nil?
191
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
192
- end # or else data not found in attributes(hash), not an issue as the data can be optional
193
- end
194
-
195
- self
196
- end
197
-
198
- # Deserializes the data based on type
199
- # @param string type Data type
200
- # @param string value Value to be deserialized
201
- # @return [Object] Deserialized data
202
- def _deserialize(type, value)
203
- case type.to_sym
204
- when :DateTime
205
- DateTime.parse(value)
206
- when :Date
207
- Date.parse(value)
208
- when :String
209
- value.to_s
210
- when :Integer
211
- value.to_i
212
- when :Float
213
- value.to_f
214
- when :BOOLEAN
215
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
216
- true
217
- else
218
- false
219
- end
220
- when :Object
221
- # generic object (usually a Hash), return directly
222
- value
223
- when /\AArray<(?<inner_type>.+)>\z/
224
- inner_type = Regexp.last_match[:inner_type]
225
- value.map { |v| _deserialize(inner_type, v) }
226
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
227
- k_type = Regexp.last_match[:k_type]
228
- v_type = Regexp.last_match[:v_type]
229
- {}.tap do |hash|
230
- value.each do |k, v|
231
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
232
- end
233
- end
234
- else # model
235
- temp_model = Clever.const_get(type).new
236
- temp_model.build_from_hash(value)
237
- end
238
- end
239
-
240
- # Returns the string representation of the object
241
- # @return [String] String presentation of the object
242
- def to_s
243
- to_hash.to_s
244
- end
245
-
246
- # to_body is an alias to to_hash (backward compatibility)
247
- # @return [Hash] Returns the object in the form of hash
248
- def to_body
249
- to_hash
250
- end
251
-
252
- # Returns the object in the form of hash
253
- # @return [Hash] Returns the object in the form of hash
254
- def to_hash
255
- hash = {}
256
- self.class.attribute_map.each_pair do |attr, param|
257
- value = self.send(attr)
258
- next if value.nil?
259
- hash[param] = _to_hash(value)
260
- end
261
- hash
262
- end
263
-
264
- # Outputs non-array value in the form of hash
265
- # For object, use to_hash. Otherwise, just return the value
266
- # @param [Object] value Any valid value
267
- # @return [Hash] Returns the value in the form of hash
268
- def _to_hash(value)
269
- if value.is_a?(Array)
270
- value.compact.map{ |v| _to_hash(v) }
271
- elsif value.is_a?(Hash)
272
- {}.tap do |hash|
273
- value.each { |k, v| hash[k] = _to_hash(v) }
274
- end
275
- elsif value.respond_to? :to_hash
276
- value.to_hash
277
- else
278
- value
279
- end
280
- end
281
-
282
- end
283
-
284
- end
@@ -1,190 +0,0 @@
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
- Swagger Codegen version: 2.2.3
10
-
11
- =end
12
-
13
- require 'date'
14
-
15
- module Clever
16
-
17
- class StudentContactsForStudentResponse
18
- attr_accessor :data
19
-
20
-
21
- # Attribute mapping from ruby-style variable name to JSON key.
22
- def self.attribute_map
23
- {
24
- :'data' => :'data'
25
- }
26
- end
27
-
28
- # Attribute type mapping.
29
- def self.swagger_types
30
- {
31
- :'data' => :'Array<StudentContact>'
32
- }
33
- end
34
-
35
- # Initializes the object
36
- # @param [Hash] attributes Model attributes in the form of hash
37
- def initialize(attributes = {})
38
- return unless attributes.is_a?(Hash)
39
-
40
- # convert string to symbol for hash key
41
- attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
42
-
43
- if attributes.has_key?(:'data')
44
- if (value = attributes[:'data']).is_a?(Array)
45
- self.data = value
46
- end
47
- end
48
-
49
- end
50
-
51
- # Show invalid properties with the reasons. Usually used together with valid?
52
- # @return Array for valid properies with the reasons
53
- def list_invalid_properties
54
- invalid_properties = Array.new
55
- return invalid_properties
56
- end
57
-
58
- # Check to see if the all the properties in the model are valid
59
- # @return true if the model is valid
60
- def valid?
61
- return true
62
- end
63
-
64
- # Checks equality by comparing each attribute.
65
- # @param [Object] Object to be compared
66
- def ==(o)
67
- return true if self.equal?(o)
68
- self.class == o.class &&
69
- data == o.data
70
- end
71
-
72
- # @see the `==` method
73
- # @param [Object] Object to be compared
74
- def eql?(o)
75
- self == o
76
- end
77
-
78
- # Calculates hash code according to all attributes.
79
- # @return [Fixnum] Hash code
80
- def hash
81
- [data].hash
82
- end
83
-
84
- # Builds the object from hash
85
- # @param [Hash] attributes Model attributes in the form of hash
86
- # @return [Object] Returns the model itself
87
- def build_from_hash(attributes)
88
- return nil unless attributes.is_a?(Hash)
89
- self.class.swagger_types.each_pair do |key, type|
90
- if type =~ /\AArray<(.*)>/i
91
- # check to ensure the input is an array given that the the attribute
92
- # is documented as an array but the input is not
93
- if attributes[self.class.attribute_map[key]].is_a?(Array)
94
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
95
- end
96
- elsif !attributes[self.class.attribute_map[key]].nil?
97
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
98
- end # or else data not found in attributes(hash), not an issue as the data can be optional
99
- end
100
-
101
- self
102
- end
103
-
104
- # Deserializes the data based on type
105
- # @param string type Data type
106
- # @param string value Value to be deserialized
107
- # @return [Object] Deserialized data
108
- def _deserialize(type, value)
109
- case type.to_sym
110
- when :DateTime
111
- DateTime.parse(value)
112
- when :Date
113
- Date.parse(value)
114
- when :String
115
- value.to_s
116
- when :Integer
117
- value.to_i
118
- when :Float
119
- value.to_f
120
- when :BOOLEAN
121
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
122
- true
123
- else
124
- false
125
- end
126
- when :Object
127
- # generic object (usually a Hash), return directly
128
- value
129
- when /\AArray<(?<inner_type>.+)>\z/
130
- inner_type = Regexp.last_match[:inner_type]
131
- value.map { |v| _deserialize(inner_type, v) }
132
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
133
- k_type = Regexp.last_match[:k_type]
134
- v_type = Regexp.last_match[:v_type]
135
- {}.tap do |hash|
136
- value.each do |k, v|
137
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
138
- end
139
- end
140
- else # model
141
- temp_model = Clever.const_get(type).new
142
- temp_model.build_from_hash(value)
143
- end
144
- end
145
-
146
- # Returns the string representation of the object
147
- # @return [String] String presentation of the object
148
- def to_s
149
- to_hash.to_s
150
- end
151
-
152
- # to_body is an alias to to_hash (backward compatibility)
153
- # @return [Hash] Returns the object in the form of hash
154
- def to_body
155
- to_hash
156
- end
157
-
158
- # Returns the object in the form of hash
159
- # @return [Hash] Returns the object in the form of hash
160
- def to_hash
161
- hash = {}
162
- self.class.attribute_map.each_pair do |attr, param|
163
- value = self.send(attr)
164
- next if value.nil?
165
- hash[param] = _to_hash(value)
166
- end
167
- hash
168
- end
169
-
170
- # Outputs non-array value in the form of hash
171
- # For object, use to_hash. Otherwise, just return the value
172
- # @param [Object] value Any valid value
173
- # @return [Hash] Returns the value in the form of hash
174
- def _to_hash(value)
175
- if value.is_a?(Array)
176
- value.compact.map{ |v| _to_hash(v) }
177
- elsif value.is_a?(Hash)
178
- {}.tap do |hash|
179
- value.each { |k, v| hash[k] = _to_hash(v) }
180
- end
181
- elsif value.respond_to? :to_hash
182
- value.to_hash
183
- else
184
- value
185
- end
186
- end
187
-
188
- end
189
-
190
- end