aylien_news_api 0.3.0 → 4.1.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 (159) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +7 -1
  3. data/README.md +117 -4
  4. data/Rakefile +10 -0
  5. data/aylien_news_api.gemspec +24 -31
  6. data/docs/Author.md +12 -1
  7. data/docs/Autocomplete.md +10 -0
  8. data/docs/Autocompletes.md +9 -0
  9. data/docs/Category.md +19 -3
  10. data/docs/CategoryLinks.md +11 -1
  11. data/docs/CategoryTaxonomy.md +16 -0
  12. data/docs/Cluster.md +29 -0
  13. data/docs/Clusters.md +21 -0
  14. data/docs/Coverages.md +16 -4
  15. data/docs/DefaultApi.md +1310 -636
  16. data/docs/Entities.md +11 -1
  17. data/docs/Entity.md +16 -3
  18. data/docs/EntityLinks.md +9 -0
  19. data/docs/Error.md +16 -2
  20. data/docs/ErrorLinks.md +11 -0
  21. data/docs/Errors.md +9 -0
  22. data/docs/HistogramInterval.md +10 -0
  23. data/docs/Histograms.md +20 -3
  24. data/docs/Location.md +13 -2
  25. data/docs/Media.md +19 -1
  26. data/docs/MediaFormat.md +16 -0
  27. data/docs/MediaType.md +16 -0
  28. data/docs/Rank.md +12 -1
  29. data/docs/Rankings.md +9 -0
  30. data/docs/RelatedStories.md +18 -3
  31. data/docs/RepresentativeStory.md +23 -0
  32. data/docs/Scope.md +15 -3
  33. data/docs/ScopeLevel.md +16 -0
  34. data/docs/Sentiment.md +11 -1
  35. data/docs/SentimentPolarity.md +16 -0
  36. data/docs/Sentiments.md +12 -2
  37. data/docs/ShareCount.md +10 -0
  38. data/docs/ShareCounts.md +12 -0
  39. data/docs/Source.md +27 -8
  40. data/docs/Stories.md +17 -2
  41. data/docs/Story.md +48 -16
  42. data/docs/StoryCluster.md +14 -1
  43. data/docs/StoryLinks.md +14 -1
  44. data/docs/StoryTranslation.md +19 -0
  45. data/docs/StoryTranslations.md +17 -0
  46. data/docs/StoryTranslationsEn.md +21 -0
  47. data/docs/Summary.md +9 -0
  48. data/docs/TimeSeries.md +11 -1
  49. data/docs/TimeSeriesList.md +15 -3
  50. data/docs/Trend.md +11 -1
  51. data/docs/Trends.md +15 -1
  52. data/docs/Warning.md +21 -0
  53. data/git_push.sh +58 -0
  54. data/lib/aylien_news_api.rb +22 -14
  55. data/lib/aylien_news_api/api/default_api.rb +2631 -1120
  56. data/lib/aylien_news_api/api_client.rb +139 -105
  57. data/lib/aylien_news_api/api_error.rb +37 -18
  58. data/lib/aylien_news_api/configuration.rb +80 -42
  59. data/lib/aylien_news_api/models/author.rb +69 -53
  60. data/lib/aylien_news_api/models/autocomplete.rb +55 -39
  61. data/lib/aylien_news_api/models/autocompletes.rb +54 -38
  62. data/lib/aylien_news_api/models/category.rb +88 -97
  63. data/lib/aylien_news_api/models/category_links.rb +66 -50
  64. data/lib/aylien_news_api/models/category_taxonomy.rb +36 -0
  65. data/lib/aylien_news_api/models/cluster.rb +265 -0
  66. data/lib/aylien_news_api/models/clusters.rb +229 -0
  67. data/lib/aylien_news_api/models/coverages.rb +79 -75
  68. data/lib/aylien_news_api/models/entities.rb +67 -51
  69. data/lib/aylien_news_api/models/entity.rb +96 -83
  70. data/lib/aylien_news_api/models/entity_links.rb +54 -38
  71. data/lib/aylien_news_api/models/error.rb +79 -63
  72. data/lib/aylien_news_api/models/error_links.rb +65 -40
  73. data/lib/aylien_news_api/models/errors.rb +54 -38
  74. data/lib/aylien_news_api/models/histogram_interval.rb +55 -39
  75. data/lib/aylien_news_api/models/histograms.rb +99 -63
  76. data/lib/aylien_news_api/models/location.rb +70 -54
  77. data/lib/aylien_news_api/models/media.rb +97 -76
  78. data/lib/aylien_news_api/models/media_format.rb +44 -0
  79. data/lib/aylien_news_api/models/media_type.rb +36 -0
  80. data/lib/aylien_news_api/models/rank.rb +67 -51
  81. data/lib/aylien_news_api/models/rankings.rb +54 -38
  82. data/lib/aylien_news_api/models/related_stories.rb +87 -63
  83. data/lib/aylien_news_api/models/representative_story.rb +237 -0
  84. data/lib/aylien_news_api/models/scope.rb +76 -94
  85. data/lib/aylien_news_api/models/scope_level.rb +37 -0
  86. data/lib/aylien_news_api/models/sentiment.rb +66 -86
  87. data/lib/aylien_news_api/models/sentiment_polarity.rb +37 -0
  88. data/lib/aylien_news_api/models/sentiments.rb +65 -51
  89. data/lib/aylien_news_api/models/share_count.rb +55 -39
  90. data/lib/aylien_news_api/models/share_counts.rb +57 -41
  91. data/lib/aylien_news_api/models/source.rb +114 -99
  92. data/lib/aylien_news_api/models/stories.rb +89 -53
  93. data/lib/aylien_news_api/models/story.rb +191 -161
  94. data/lib/aylien_news_api/models/story_cluster.rb +71 -55
  95. data/lib/aylien_news_api/models/story_links.rb +73 -47
  96. data/lib/aylien_news_api/models/story_translation.rb +217 -0
  97. data/lib/aylien_news_api/models/story_translations.rb +207 -0
  98. data/lib/aylien_news_api/models/story_translations_en.rb +227 -0
  99. data/lib/aylien_news_api/models/summary.rb +54 -38
  100. data/lib/aylien_news_api/models/time_series.rb +66 -50
  101. data/lib/aylien_news_api/models/time_series_list.rb +75 -59
  102. data/lib/aylien_news_api/models/trend.rb +66 -50
  103. data/lib/aylien_news_api/models/trends.rb +80 -44
  104. data/lib/aylien_news_api/models/warning.rb +226 -0
  105. data/lib/aylien_news_api/version.rb +12 -14
  106. data/spec/api/default_api_spec.rb +620 -284
  107. data/spec/api_client_spec.rb +43 -161
  108. data/spec/configuration_spec.rb +22 -19
  109. data/spec/models/author_spec.rb +21 -34
  110. data/spec/models/autocomplete_spec.rb +17 -26
  111. data/spec/models/autocompletes_spec.rb +16 -21
  112. data/spec/models/category_links_spec.rb +19 -28
  113. data/spec/models/category_spec.rb +31 -50
  114. data/spec/models/category_taxonomy_spec.rb +35 -0
  115. data/spec/models/cluster_spec.rb +77 -0
  116. data/spec/models/clusters_spec.rb +53 -0
  117. data/spec/models/coverages_spec.rb +24 -45
  118. data/spec/models/entities_spec.rb +19 -28
  119. data/spec/models/entity_links_spec.rb +16 -21
  120. data/spec/models/entity_spec.rb +25 -46
  121. data/spec/models/error_links_spec.rb +22 -21
  122. data/spec/models/error_spec.rb +27 -52
  123. data/spec/models/errors_spec.rb +16 -21
  124. data/spec/models/histogram_interval_spec.rb +17 -26
  125. data/spec/models/histograms_spec.rb +36 -45
  126. data/spec/models/location_spec.rb +21 -34
  127. data/spec/models/media_format_spec.rb +35 -0
  128. data/spec/models/media_spec.rb +41 -26
  129. data/spec/models/media_type_spec.rb +35 -0
  130. data/spec/models/rank_spec.rb +20 -21
  131. data/spec/models/rankings_spec.rb +15 -16
  132. data/spec/models/related_stories_spec.rb +33 -38
  133. data/spec/models/representative_story_spec.rb +59 -0
  134. data/spec/models/scope_level_spec.rb +35 -0
  135. data/spec/models/scope_spec.rb +23 -40
  136. data/spec/models/sentiment_polarity_spec.rb +35 -0
  137. data/spec/models/sentiment_spec.rb +17 -26
  138. data/spec/models/sentiments_spec.rb +19 -28
  139. data/spec/models/share_count_spec.rb +17 -26
  140. data/spec/models/share_counts_spec.rb +19 -36
  141. data/spec/models/source_spec.rb +54 -49
  142. data/spec/models/stories_spec.rb +32 -33
  143. data/spec/models/story_cluster_spec.rb +23 -44
  144. data/spec/models/story_links_spec.rb +25 -32
  145. data/spec/models/story_spec.rb +65 -134
  146. data/spec/models/story_translation_spec.rb +47 -0
  147. data/spec/models/story_translations_en_spec.rb +53 -0
  148. data/spec/models/story_translations_spec.rb +41 -0
  149. data/spec/models/summary_spec.rb +16 -21
  150. data/spec/models/time_series_list_spec.rb +22 -39
  151. data/spec/models/time_series_spec.rb +19 -28
  152. data/spec/models/trend_spec.rb +19 -28
  153. data/spec/models/trends_spec.rb +30 -27
  154. data/spec/models/warning_spec.rb +53 -0
  155. data/spec/spec_helper.rb +11 -13
  156. metadata +92 -195
  157. data/Gemfile.lock +0 -65
  158. data/LICENSE +0 -13
  159. data/aylien_news_api-0.2.0.gem +0 -0
@@ -1,25 +1,21 @@
1
- # Copyright 2016 Aylien, Inc. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
1
+ =begin
2
+ #AYLIEN News API
3
+
4
+ #The AYLIEN News API is the most powerful way of sourcing, searching and syndicating analyzed and enriched news content. It is accessed by sending HTTP requests to our server, which returns information to your client.
5
+
6
+ The version of the OpenAPI document: 3.0
7
+ Contact: support@aylien.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.0.0-SNAPSHOT
10
+
11
+ =end
14
12
 
15
13
  require 'date'
16
14
 
17
15
  module AylienNewsApi
18
-
19
16
  class Rankings
20
17
  attr_accessor :alexa
21
18
 
22
-
23
19
  # Attribute mapping from ruby-style variable name to JSON key.
24
20
  def self.attribute_map
25
21
  {
@@ -28,39 +24,51 @@ module AylienNewsApi
28
24
  end
29
25
 
30
26
  # Attribute type mapping.
31
- def self.api_types
27
+ def self.openapi_types
32
28
  {
33
29
  :'alexa' => :'Array<Rank>'
34
30
  }
35
31
  end
36
32
 
33
+ # List of attributes with nullable: true
34
+ def self.openapi_nullable
35
+ Set.new([
36
+ ])
37
+ end
38
+
37
39
  # Initializes the object
38
40
  # @param [Hash] attributes Model attributes in the form of hash
39
41
  def initialize(attributes = {})
40
- return unless attributes.is_a?(Hash)
42
+ if (!attributes.is_a?(Hash))
43
+ fail ArgumentError, "The input argument (attributes) must be a hash in `AylienNewsApi::Rankings` initialize method"
44
+ end
41
45
 
42
- # convert string to symbol for hash key
43
- attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
46
+ # check to see if the attribute exists and convert string to symbol for hash key
47
+ attributes = attributes.each_with_object({}) { |(k, v), h|
48
+ if (!self.class.attribute_map.key?(k.to_sym))
49
+ fail ArgumentError, "`#{k}` is not a valid attribute in `AylienNewsApi::Rankings`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
50
+ end
51
+ h[k.to_sym] = v
52
+ }
44
53
 
45
- if attributes.has_key?(:'alexa')
54
+ if attributes.key?(:'alexa')
46
55
  if (value = attributes[:'alexa']).is_a?(Array)
47
56
  self.alexa = value
48
57
  end
49
58
  end
50
-
51
59
  end
52
60
 
53
61
  # Show invalid properties with the reasons. Usually used together with valid?
54
- # @return Array for valid properies with the reasons
62
+ # @return Array for valid properties with the reasons
55
63
  def list_invalid_properties
56
64
  invalid_properties = Array.new
57
- return invalid_properties
65
+ invalid_properties
58
66
  end
59
67
 
60
68
  # Check to see if the all the properties in the model are valid
61
69
  # @return true if the model is valid
62
70
  def valid?
63
- return true
71
+ true
64
72
  end
65
73
 
66
74
  # Checks equality by comparing each attribute.
@@ -78,22 +86,29 @@ module AylienNewsApi
78
86
  end
79
87
 
80
88
  # Calculates hash code according to all attributes.
81
- # @return [Fixnum] Hash code
89
+ # @return [Integer] Hash code
82
90
  def hash
83
91
  [alexa].hash
84
92
  end
85
93
 
94
+ # Builds the object from hash
95
+ # @param [Hash] attributes Model attributes in the form of hash
96
+ # @return [Object] Returns the model itself
97
+ def self.build_from_hash(attributes)
98
+ new.build_from_hash(attributes)
99
+ end
100
+
86
101
  # Builds the object from hash
87
102
  # @param [Hash] attributes Model attributes in the form of hash
88
103
  # @return [Object] Returns the model itself
89
104
  def build_from_hash(attributes)
90
105
  return nil unless attributes.is_a?(Hash)
91
- self.class.api_types.each_pair do |key, type|
92
- if type =~ /^Array<(.*)>/i
93
- # check to ensure the input is an array given that the the attribute
106
+ self.class.openapi_types.each_pair do |key, type|
107
+ if type =~ /\AArray<(.*)>/i
108
+ # check to ensure the input is an array given that the attribute
94
109
  # is documented as an array but the input is not
95
110
  if attributes[self.class.attribute_map[key]].is_a?(Array)
96
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
111
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
97
112
  end
98
113
  elsif !attributes[self.class.attribute_map[key]].nil?
99
114
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
@@ -119,8 +134,8 @@ module AylienNewsApi
119
134
  value.to_i
120
135
  when :Float
121
136
  value.to_f
122
- when :BOOLEAN
123
- if value.to_s =~ /^(true|t|yes|y|1)$/i
137
+ when :Boolean
138
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
124
139
  true
125
140
  else
126
141
  false
@@ -131,7 +146,7 @@ module AylienNewsApi
131
146
  when /\AArray<(?<inner_type>.+)>\z/
132
147
  inner_type = Regexp.last_match[:inner_type]
133
148
  value.map { |v| _deserialize(inner_type, v) }
134
- when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
149
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
135
150
  k_type = Regexp.last_match[:k_type]
136
151
  v_type = Regexp.last_match[:v_type]
137
152
  {}.tap do |hash|
@@ -140,8 +155,7 @@ module AylienNewsApi
140
155
  end
141
156
  end
142
157
  else # model
143
- temp_model = AylienNewsApi.const_get(type).new
144
- temp_model.build_from_hash(value)
158
+ AylienNewsApi.const_get(type).build_from_hash(value)
145
159
  end
146
160
  end
147
161
 
@@ -163,7 +177,11 @@ module AylienNewsApi
163
177
  hash = {}
164
178
  self.class.attribute_map.each_pair do |attr, param|
165
179
  value = self.send(attr)
166
- next if value.nil?
180
+ if value.nil?
181
+ is_nullable = self.class.openapi_nullable.include?(attr)
182
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
183
+ end
184
+
167
185
  hash[param] = _to_hash(value)
168
186
  end
169
187
  hash
@@ -175,7 +193,7 @@ module AylienNewsApi
175
193
  # @return [Hash] Returns the value in the form of hash
176
194
  def _to_hash(value)
177
195
  if value.is_a?(Array)
178
- value.compact.map{ |v| _to_hash(v) }
196
+ value.compact.map { |v| _to_hash(v) }
179
197
  elsif value.is_a?(Hash)
180
198
  {}.tap do |hash|
181
199
  value.each { |k, v| hash[k] = _to_hash(v) }
@@ -186,7 +204,5 @@ module AylienNewsApi
186
204
  value
187
205
  end
188
206
  end
189
-
190
207
  end
191
-
192
208
  end
@@ -1,24 +1,21 @@
1
- # Copyright 2016 Aylien, Inc. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
1
+ =begin
2
+ #AYLIEN News API
3
+
4
+ #The AYLIEN News API is the most powerful way of sourcing, searching and syndicating analyzed and enriched news content. It is accessed by sending HTTP requests to our server, which returns information to your client.
5
+
6
+ The version of the OpenAPI document: 3.0
7
+ Contact: support@aylien.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.0.0-SNAPSHOT
10
+
11
+ =end
14
12
 
15
13
  require 'date'
16
14
 
17
15
  module AylienNewsApi
18
-
19
16
  class RelatedStories
20
- # The input story title
21
- attr_accessor :story_title
17
+ # An array of related stories for the input story
18
+ attr_accessor :related_stories
22
19
 
23
20
  # The input story body
24
21
  attr_accessor :story_body
@@ -26,80 +23,98 @@ module AylienNewsApi
26
23
  # The input story language
27
24
  attr_accessor :story_language
28
25
 
29
- # An array of related stories for the input story
30
- attr_accessor :related_stories
26
+ # The input story title
27
+ attr_accessor :story_title
31
28
 
32
- # An array of clusters
33
- attr_accessor :clusters
29
+ # The end of a period in which searched stories were published
30
+ attr_accessor :published_at_end
34
31
 
32
+ # The start of a period in which searched stories were published
33
+ attr_accessor :published_at_start
35
34
 
36
35
  # Attribute mapping from ruby-style variable name to JSON key.
37
36
  def self.attribute_map
38
37
  {
39
- :'story_title' => :'story_title',
38
+ :'related_stories' => :'related_stories',
40
39
  :'story_body' => :'story_body',
41
40
  :'story_language' => :'story_language',
42
- :'related_stories' => :'related_stories',
43
- :'clusters' => :'clusters'
41
+ :'story_title' => :'story_title',
42
+ :'published_at_end' => :'published_at.end',
43
+ :'published_at_start' => :'published_at.start'
44
44
  }
45
45
  end
46
46
 
47
47
  # Attribute type mapping.
48
- def self.api_types
48
+ def self.openapi_types
49
49
  {
50
- :'story_title' => :'String',
50
+ :'related_stories' => :'Array<Story>',
51
51
  :'story_body' => :'String',
52
52
  :'story_language' => :'String',
53
- :'related_stories' => :'Array<Story>',
54
- :'clusters' => :'Array<StoryCluster>'
53
+ :'story_title' => :'String',
54
+ :'published_at_end' => :'DateTime',
55
+ :'published_at_start' => :'DateTime'
55
56
  }
56
57
  end
57
58
 
59
+ # List of attributes with nullable: true
60
+ def self.openapi_nullable
61
+ Set.new([
62
+ ])
63
+ end
64
+
58
65
  # Initializes the object
59
66
  # @param [Hash] attributes Model attributes in the form of hash
60
67
  def initialize(attributes = {})
61
- return unless attributes.is_a?(Hash)
68
+ if (!attributes.is_a?(Hash))
69
+ fail ArgumentError, "The input argument (attributes) must be a hash in `AylienNewsApi::RelatedStories` initialize method"
70
+ end
62
71
 
63
- # convert string to symbol for hash key
64
- attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
72
+ # check to see if the attribute exists and convert string to symbol for hash key
73
+ attributes = attributes.each_with_object({}) { |(k, v), h|
74
+ if (!self.class.attribute_map.key?(k.to_sym))
75
+ fail ArgumentError, "`#{k}` is not a valid attribute in `AylienNewsApi::RelatedStories`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
76
+ end
77
+ h[k.to_sym] = v
78
+ }
65
79
 
66
- if attributes.has_key?(:'story_title')
67
- self.story_title = attributes[:'story_title']
80
+ if attributes.key?(:'related_stories')
81
+ if (value = attributes[:'related_stories']).is_a?(Array)
82
+ self.related_stories = value
83
+ end
68
84
  end
69
85
 
70
- if attributes.has_key?(:'story_body')
86
+ if attributes.key?(:'story_body')
71
87
  self.story_body = attributes[:'story_body']
72
88
  end
73
89
 
74
- if attributes.has_key?(:'story_language')
90
+ if attributes.key?(:'story_language')
75
91
  self.story_language = attributes[:'story_language']
76
92
  end
77
93
 
78
- if attributes.has_key?(:'related_stories')
79
- if (value = attributes[:'related_stories']).is_a?(Array)
80
- self.related_stories = value
81
- end
94
+ if attributes.key?(:'story_title')
95
+ self.story_title = attributes[:'story_title']
82
96
  end
83
97
 
84
- if attributes.has_key?(:'clusters')
85
- if (value = attributes[:'clusters']).is_a?(Array)
86
- self.clusters = value
87
- end
98
+ if attributes.key?(:'published_at_end')
99
+ self.published_at_end = attributes[:'published_at_end']
88
100
  end
89
101
 
102
+ if attributes.key?(:'published_at_start')
103
+ self.published_at_start = attributes[:'published_at_start']
104
+ end
90
105
  end
91
106
 
92
107
  # Show invalid properties with the reasons. Usually used together with valid?
93
- # @return Array for valid properies with the reasons
108
+ # @return Array for valid properties with the reasons
94
109
  def list_invalid_properties
95
110
  invalid_properties = Array.new
96
- return invalid_properties
111
+ invalid_properties
97
112
  end
98
113
 
99
114
  # Check to see if the all the properties in the model are valid
100
115
  # @return true if the model is valid
101
116
  def valid?
102
- return true
117
+ true
103
118
  end
104
119
 
105
120
  # Checks equality by comparing each attribute.
@@ -107,11 +122,12 @@ module AylienNewsApi
107
122
  def ==(o)
108
123
  return true if self.equal?(o)
109
124
  self.class == o.class &&
110
- story_title == o.story_title &&
125
+ related_stories == o.related_stories &&
111
126
  story_body == o.story_body &&
112
127
  story_language == o.story_language &&
113
- related_stories == o.related_stories &&
114
- clusters == o.clusters
128
+ story_title == o.story_title &&
129
+ published_at_end == o.published_at_end &&
130
+ published_at_start == o.published_at_start
115
131
  end
116
132
 
117
133
  # @see the `==` method
@@ -121,9 +137,16 @@ module AylienNewsApi
121
137
  end
122
138
 
123
139
  # Calculates hash code according to all attributes.
124
- # @return [Fixnum] Hash code
140
+ # @return [Integer] Hash code
125
141
  def hash
126
- [story_title, story_body, story_language, related_stories, clusters].hash
142
+ [related_stories, story_body, story_language, story_title, published_at_end, published_at_start].hash
143
+ end
144
+
145
+ # Builds the object from hash
146
+ # @param [Hash] attributes Model attributes in the form of hash
147
+ # @return [Object] Returns the model itself
148
+ def self.build_from_hash(attributes)
149
+ new.build_from_hash(attributes)
127
150
  end
128
151
 
129
152
  # Builds the object from hash
@@ -131,12 +154,12 @@ module AylienNewsApi
131
154
  # @return [Object] Returns the model itself
132
155
  def build_from_hash(attributes)
133
156
  return nil unless attributes.is_a?(Hash)
134
- self.class.api_types.each_pair do |key, type|
135
- if type =~ /^Array<(.*)>/i
136
- # check to ensure the input is an array given that the the attribute
157
+ self.class.openapi_types.each_pair do |key, type|
158
+ if type =~ /\AArray<(.*)>/i
159
+ # check to ensure the input is an array given that the attribute
137
160
  # is documented as an array but the input is not
138
161
  if attributes[self.class.attribute_map[key]].is_a?(Array)
139
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
162
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
140
163
  end
141
164
  elsif !attributes[self.class.attribute_map[key]].nil?
142
165
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
@@ -162,8 +185,8 @@ module AylienNewsApi
162
185
  value.to_i
163
186
  when :Float
164
187
  value.to_f
165
- when :BOOLEAN
166
- if value.to_s =~ /^(true|t|yes|y|1)$/i
188
+ when :Boolean
189
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
167
190
  true
168
191
  else
169
192
  false
@@ -174,7 +197,7 @@ module AylienNewsApi
174
197
  when /\AArray<(?<inner_type>.+)>\z/
175
198
  inner_type = Regexp.last_match[:inner_type]
176
199
  value.map { |v| _deserialize(inner_type, v) }
177
- when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
200
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
178
201
  k_type = Regexp.last_match[:k_type]
179
202
  v_type = Regexp.last_match[:v_type]
180
203
  {}.tap do |hash|
@@ -183,8 +206,7 @@ module AylienNewsApi
183
206
  end
184
207
  end
185
208
  else # model
186
- temp_model = AylienNewsApi.const_get(type).new
187
- temp_model.build_from_hash(value)
209
+ AylienNewsApi.const_get(type).build_from_hash(value)
188
210
  end
189
211
  end
190
212
 
@@ -206,7 +228,11 @@ module AylienNewsApi
206
228
  hash = {}
207
229
  self.class.attribute_map.each_pair do |attr, param|
208
230
  value = self.send(attr)
209
- next if value.nil?
231
+ if value.nil?
232
+ is_nullable = self.class.openapi_nullable.include?(attr)
233
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
234
+ end
235
+
210
236
  hash[param] = _to_hash(value)
211
237
  end
212
238
  hash
@@ -218,7 +244,7 @@ module AylienNewsApi
218
244
  # @return [Hash] Returns the value in the form of hash
219
245
  def _to_hash(value)
220
246
  if value.is_a?(Array)
221
- value.compact.map{ |v| _to_hash(v) }
247
+ value.compact.map { |v| _to_hash(v) }
222
248
  elsif value.is_a?(Hash)
223
249
  {}.tap do |hash|
224
250
  value.each { |k, v| hash[k] = _to_hash(v) }
@@ -229,7 +255,5 @@ module AylienNewsApi
229
255
  value
230
256
  end
231
257
  end
232
-
233
258
  end
234
-
235
259
  end