mux_ruby 1.9.0 → 2.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.
- checksums.yaml +4 -4
- data/Gemfile +3 -1
- data/Gemfile.lock +26 -37
- data/README.md +37 -13
- data/docs/AbridgedVideoView.md +33 -13
- data/docs/Asset.md +59 -26
- data/docs/AssetErrors.md +15 -4
- data/docs/AssetMaster.md +15 -4
- data/docs/AssetNonStandardInputReasons.md +29 -11
- data/docs/AssetRecordingTimes.md +15 -4
- data/docs/AssetResponse.md +13 -3
- data/docs/AssetStaticRenditions.md +15 -4
- data/docs/AssetStaticRenditionsFiles.md +23 -8
- data/docs/AssetsApi.md +396 -163
- data/docs/BreakdownValue.md +21 -7
- data/docs/CreateAssetRequest.md +27 -10
- data/docs/CreateLiveStreamRequest.md +29 -9
- data/docs/CreatePlaybackIDRequest.md +13 -3
- data/docs/CreatePlaybackIDResponse.md +13 -3
- data/docs/CreateSimulcastTargetRequest.md +17 -5
- data/docs/CreateTrackRequest.md +25 -9
- data/docs/CreateTrackResponse.md +13 -3
- data/docs/CreateUploadRequest.md +19 -6
- data/docs/DeliveryReport.md +27 -9
- data/docs/DeliveryUsageApi.md +41 -23
- data/docs/DimensionValue.md +15 -4
- data/docs/DimensionsApi.md +72 -34
- data/docs/DirectUploadsApi.md +131 -56
- data/docs/DisableLiveStreamResponse.md +13 -3
- data/docs/EnableLiveStreamResponse.md +13 -3
- data/docs/Error.md +27 -10
- data/docs/ErrorsApi.md +38 -20
- data/docs/ExportDate.md +20 -0
- data/docs/ExportFile.md +22 -0
- data/docs/ExportsApi.md +99 -12
- data/docs/FilterValue.md +15 -4
- data/docs/FiltersApi.md +71 -33
- data/docs/GetAssetInputInfoResponse.md +13 -3
- data/docs/GetAssetOrLiveStreamIdResponse.md +13 -3
- data/docs/GetAssetOrLiveStreamIdResponseData.md +17 -5
- data/docs/GetAssetOrLiveStreamIdResponseDataObject.md +15 -4
- data/docs/GetAssetPlaybackIDResponse.md +13 -3
- data/docs/GetMetricTimeseriesDataResponse.md +17 -5
- data/docs/GetOverallValuesResponse.md +17 -5
- data/docs/GetRealTimeBreakdownResponse.md +17 -5
- data/docs/GetRealTimeHistogramTimeseriesResponse.md +19 -6
- data/docs/GetRealTimeHistogramTimeseriesResponseMeta.md +13 -3
- data/docs/GetRealTimeTimeseriesResponse.md +17 -5
- data/docs/Incident.md +53 -23
- data/docs/IncidentBreakdown.md +17 -5
- data/docs/IncidentNotification.md +17 -5
- data/docs/IncidentNotificationRule.md +21 -7
- data/docs/IncidentResponse.md +15 -4
- data/docs/IncidentsApi.md +118 -62
- data/docs/InputFile.md +15 -4
- data/docs/InputInfo.md +15 -4
- data/docs/InputSettings.md +31 -12
- data/docs/InputSettingsOverlaySettings.md +25 -9
- data/docs/InputTrack.md +29 -11
- data/docs/Insight.md +23 -8
- data/docs/ListAllMetricValuesResponse.md +17 -5
- data/docs/ListAssetsResponse.md +13 -3
- data/docs/ListBreakdownValuesResponse.md +17 -5
- data/docs/ListDeliveryUsageResponse.md +19 -6
- data/docs/ListDimensionValuesResponse.md +17 -5
- data/docs/ListDimensionsResponse.md +17 -5
- data/docs/ListErrorsResponse.md +17 -5
- data/docs/ListExportsResponse.md +17 -5
- data/docs/ListFilterValuesResponse.md +17 -5
- data/docs/ListFiltersResponse.md +17 -5
- data/docs/ListFiltersResponseData.md +15 -4
- data/docs/ListIncidentsResponse.md +17 -5
- data/docs/ListInsightsResponse.md +17 -5
- data/docs/ListLiveStreamsResponse.md +13 -3
- data/docs/ListRealTimeDimensionsResponse.md +17 -5
- data/docs/ListRealTimeDimensionsResponseData.md +15 -4
- data/docs/ListRealTimeMetricsResponse.md +17 -5
- data/docs/ListRelatedIncidentsResponse.md +17 -5
- data/docs/ListSigningKeysResponse.md +13 -3
- data/docs/ListUploadsResponse.md +13 -3
- data/docs/ListVideoViewExportsResponse.md +22 -0
- data/docs/ListVideoViewsResponse.md +17 -5
- data/docs/LiveStream.md +41 -15
- data/docs/LiveStreamResponse.md +13 -3
- data/docs/LiveStreamsApi.md +418 -170
- data/docs/Metric.md +21 -7
- data/docs/MetricsApi.md +211 -117
- data/docs/NotificationRule.md +17 -5
- data/docs/OverallValues.md +19 -6
- data/docs/PlaybackID.md +15 -4
- data/docs/PlaybackIDApi.md +35 -17
- data/docs/PlaybackPolicy.md +10 -2
- data/docs/RealTimeApi.md +177 -81
- data/docs/RealTimeBreakdownValue.md +21 -7
- data/docs/RealTimeHistogramTimeseriesBucket.md +15 -4
- data/docs/RealTimeHistogramTimeseriesBucketValues.md +15 -4
- data/docs/RealTimeHistogramTimeseriesDatapoint.md +25 -9
- data/docs/RealTimeTimeseriesDatapoint.md +17 -5
- data/docs/Score.md +23 -8
- data/docs/SignalLiveStreamCompleteResponse.md +13 -3
- data/docs/SigningKey.md +17 -5
- data/docs/SigningKeyResponse.md +13 -3
- data/docs/SimulcastTarget.md +21 -7
- data/docs/SimulcastTargetResponse.md +13 -3
- data/docs/Track.md +37 -15
- data/docs/URLSigningKeysApi.md +130 -54
- data/docs/UpdateAssetMP4SupportRequest.md +13 -3
- data/docs/UpdateAssetMasterAccessRequest.md +13 -3
- data/docs/Upload.md +29 -11
- data/docs/UploadError.md +15 -4
- data/docs/UploadResponse.md +13 -3
- data/docs/VideoView.md +251 -114
- data/docs/VideoViewEvent.md +19 -6
- data/docs/VideoViewResponse.md +15 -4
- data/docs/VideoViewsApi.md +78 -41
- data/gen/.gitignore +7 -0
- data/gen/Makefile +31 -0
- data/gen/generator-config.json +11 -0
- data/gen/openapitools.json +7 -0
- data/gen/package.json +17 -0
- data/gen/templates/Gemfile.mustache +11 -0
- data/gen/templates/README.mustache +158 -0
- data/gen/templates/Rakefile.mustache +10 -0
- data/gen/templates/api.mustache +206 -0
- data/gen/templates/api_client.mustache +264 -0
- data/gen/templates/api_client_faraday_partial.mustache +138 -0
- data/gen/templates/api_client_spec.mustache +220 -0
- data/gen/templates/api_client_typhoeus_partial.mustache +183 -0
- data/gen/templates/api_doc.mustache +118 -0
- data/gen/templates/api_error.mustache +67 -0
- data/gen/templates/api_info.mustache +12 -0
- data/gen/templates/api_test.mustache +47 -0
- data/gen/templates/base_object.mustache +120 -0
- data/gen/templates/configuration.mustache +349 -0
- data/gen/templates/configuration_spec.mustache +34 -0
- data/gen/templates/configuration_tls_faraday_partial.mustache +29 -0
- data/gen/templates/configuration_tls_typhoeus_partial.mustache +34 -0
- data/gen/templates/gem.mustache +40 -0
- data/gen/templates/gemspec.mustache +35 -0
- data/gen/templates/gitignore.mustache +39 -0
- data/gen/templates/model.mustache +26 -0
- data/gen/templates/model_doc.mustache +12 -0
- data/gen/templates/model_test.mustache +77 -0
- data/gen/templates/partial_model_enum_class.mustache +20 -0
- data/gen/templates/partial_model_generic.mustache +371 -0
- data/gen/templates/partial_model_generic_doc.mustache +28 -0
- data/gen/templates/partial_oneof_module.mustache +137 -0
- data/gen/templates/partial_oneof_module_doc.mustache +92 -0
- data/gen/templates/rspec.mustache +2 -0
- data/gen/templates/rubocop.mustache +148 -0
- data/gen/templates/spec_helper.mustache +103 -0
- data/gen/templates/version.mustache +7 -0
- data/gen/yarn.lock +1878 -0
- data/lib/mux_ruby/api/assets_api.rb +293 -156
- data/lib/mux_ruby/api/delivery_usage_api.rb +32 -16
- data/lib/mux_ruby/api/dimensions_api.rb +55 -29
- data/lib/mux_ruby/api/direct_uploads_api.rb +90 -44
- data/lib/mux_ruby/api/errors_api.rb +34 -18
- data/lib/mux_ruby/api/exports_api.rb +86 -13
- data/lib/mux_ruby/api/filters_api.rb +53 -27
- data/lib/mux_ruby/api/incidents_api.rb +94 -52
- data/lib/mux_ruby/api/live_streams_api.rb +299 -157
- data/lib/mux_ruby/api/metrics_api.rb +193 -122
- data/lib/mux_ruby/api/playback_id_api.rb +33 -17
- data/lib/mux_ruby/api/real_time_api.rb +149 -87
- data/lib/mux_ruby/api/url_signing_keys_api.rb +95 -48
- data/lib/mux_ruby/api/video_views_api.rb +60 -33
- data/lib/mux_ruby/api_client.rb +94 -79
- data/lib/mux_ruby/api_error.rb +35 -7
- data/lib/mux_ruby/configuration.rb +50 -14
- data/lib/mux_ruby/models/abridged_video_view.rb +58 -24
- data/lib/mux_ruby/models/asset.rb +100 -63
- data/lib/mux_ruby/models/asset_errors.rb +50 -15
- data/lib/mux_ruby/models/asset_master.rb +52 -17
- data/lib/mux_ruby/models/asset_non_standard_input_reasons.rb +70 -35
- data/lib/mux_ruby/models/asset_recording_times.rb +50 -16
- data/lib/mux_ruby/models/asset_response.rb +48 -14
- data/lib/mux_ruby/models/asset_static_renditions.rb +53 -17
- data/lib/mux_ruby/models/asset_static_renditions_files.rb +58 -23
- data/lib/mux_ruby/models/breakdown_value.rb +52 -18
- data/lib/mux_ruby/models/create_asset_request.rb +64 -30
- data/lib/mux_ruby/models/create_live_stream_request.rb +78 -23
- data/lib/mux_ruby/models/create_playback_id_request.rb +48 -14
- data/lib/mux_ruby/models/create_playback_id_response.rb +48 -14
- data/lib/mux_ruby/models/create_simulcast_target_request.rb +50 -16
- data/lib/mux_ruby/models/create_track_request.rb +60 -26
- data/lib/mux_ruby/models/create_track_response.rb +48 -14
- data/lib/mux_ruby/models/create_upload_request.rb +52 -18
- data/lib/mux_ruby/models/delivery_report.rb +106 -21
- data/lib/mux_ruby/models/dimension_value.rb +49 -15
- data/lib/mux_ruby/models/disable_live_stream_response.rb +48 -14
- data/lib/mux_ruby/models/enable_live_stream_response.rb +48 -14
- data/lib/mux_ruby/models/error.rb +63 -21
- data/lib/mux_ruby/models/export_date.rb +229 -0
- data/lib/mux_ruby/models/export_file.rb +236 -0
- data/lib/mux_ruby/models/filter_value.rb +49 -15
- data/lib/mux_ruby/models/get_asset_input_info_response.rb +48 -14
- data/lib/mux_ruby/models/get_asset_or_live_stream_id_response.rb +48 -14
- data/lib/mux_ruby/models/get_asset_or_live_stream_id_response_data.rb +50 -16
- data/lib/mux_ruby/models/get_asset_or_live_stream_id_response_data_object.rb +51 -17
- data/lib/mux_ruby/models/get_asset_playback_id_response.rb +48 -14
- data/lib/mux_ruby/models/get_metric_timeseries_data_response.rb +50 -16
- data/lib/mux_ruby/models/get_overall_values_response.rb +50 -16
- data/lib/mux_ruby/models/get_real_time_breakdown_response.rb +50 -16
- data/lib/mux_ruby/models/get_real_time_histogram_timeseries_response.rb +51 -17
- data/lib/mux_ruby/models/get_real_time_histogram_timeseries_response_meta.rb +48 -14
- data/lib/mux_ruby/models/get_real_time_timeseries_response.rb +50 -16
- data/lib/mux_ruby/models/incident.rb +68 -34
- data/lib/mux_ruby/models/incident_breakdown.rb +50 -16
- data/lib/mux_ruby/models/incident_notification.rb +50 -16
- data/lib/mux_ruby/models/incident_notification_rule.rb +52 -18
- data/lib/mux_ruby/models/incident_response.rb +49 -15
- data/lib/mux_ruby/models/input_file.rb +49 -15
- data/lib/mux_ruby/models/input_info.rb +49 -15
- data/lib/mux_ruby/models/input_settings.rb +64 -30
- data/lib/mux_ruby/models/input_settings_overlay_settings.rb +58 -24
- data/lib/mux_ruby/models/input_track.rb +56 -22
- data/lib/mux_ruby/models/insight.rb +53 -19
- data/lib/mux_ruby/models/list_all_metric_values_response.rb +50 -16
- data/lib/mux_ruby/models/list_assets_response.rb +48 -14
- data/lib/mux_ruby/models/list_breakdown_values_response.rb +50 -16
- data/lib/mux_ruby/models/list_delivery_usage_response.rb +51 -17
- data/lib/mux_ruby/models/list_dimension_values_response.rb +50 -16
- data/lib/mux_ruby/models/list_dimensions_response.rb +50 -16
- data/lib/mux_ruby/models/list_errors_response.rb +50 -16
- data/lib/mux_ruby/models/list_exports_response.rb +50 -16
- data/lib/mux_ruby/models/list_filter_values_response.rb +50 -16
- data/lib/mux_ruby/models/list_filters_response.rb +50 -16
- data/lib/mux_ruby/models/list_filters_response_data.rb +49 -15
- data/lib/mux_ruby/models/list_incidents_response.rb +50 -16
- data/lib/mux_ruby/models/list_insights_response.rb +50 -16
- data/lib/mux_ruby/models/list_live_streams_response.rb +48 -14
- data/lib/mux_ruby/models/list_real_time_dimensions_response.rb +50 -16
- data/lib/mux_ruby/models/list_real_time_dimensions_response_data.rb +49 -15
- data/lib/mux_ruby/models/list_real_time_metrics_response.rb +50 -16
- data/lib/mux_ruby/models/list_related_incidents_response.rb +50 -16
- data/lib/mux_ruby/models/list_signing_keys_response.rb +48 -14
- data/lib/mux_ruby/models/list_uploads_response.rb +48 -14
- data/lib/mux_ruby/models/list_video_view_exports_response.rb +240 -0
- data/lib/mux_ruby/models/list_video_views_response.rb +50 -16
- data/lib/mux_ruby/models/live_stream.rb +131 -29
- data/lib/mux_ruby/models/live_stream_response.rb +48 -14
- data/lib/mux_ruby/models/metric.rb +52 -18
- data/lib/mux_ruby/models/notification_rule.rb +50 -16
- data/lib/mux_ruby/models/overall_values.rb +51 -17
- data/lib/mux_ruby/models/playback_id.rb +49 -15
- data/lib/mux_ruby/models/playback_policy.rb +12 -6
- data/lib/mux_ruby/models/real_time_breakdown_value.rb +52 -18
- data/lib/mux_ruby/models/real_time_histogram_timeseries_bucket.rb +50 -16
- data/lib/mux_ruby/models/real_time_histogram_timeseries_bucket_values.rb +49 -15
- data/lib/mux_ruby/models/real_time_histogram_timeseries_datapoint.rb +54 -20
- data/lib/mux_ruby/models/real_time_timeseries_datapoint.rb +50 -16
- data/lib/mux_ruby/models/score.rb +53 -19
- data/lib/mux_ruby/models/signal_live_stream_complete_response.rb +48 -14
- data/lib/mux_ruby/models/signing_key.rb +53 -16
- data/lib/mux_ruby/models/signing_key_response.rb +48 -14
- data/lib/mux_ruby/models/simulcast_target.rb +54 -20
- data/lib/mux_ruby/models/simulcast_target_response.rb +48 -14
- data/lib/mux_ruby/models/track.rb +67 -33
- data/lib/mux_ruby/models/update_asset_master_access_request.rb +50 -16
- data/lib/mux_ruby/models/update_asset_mp4_support_request.rb +50 -16
- data/lib/mux_ruby/models/upload.rb +61 -25
- data/lib/mux_ruby/models/upload_error.rb +51 -15
- data/lib/mux_ruby/models/upload_response.rb +48 -14
- data/lib/mux_ruby/models/video_view.rb +242 -136
- data/lib/mux_ruby/models/video_view_event.rb +51 -17
- data/lib/mux_ruby/models/video_view_response.rb +49 -15
- data/lib/mux_ruby/version.rb +10 -3
- data/lib/mux_ruby.rb +12 -2
- data/mux_ruby.gemspec +15 -17
- data/spec/api_client_spec.rb +10 -3
- data/spec/configuration_spec.rb +9 -2
- data/spec/models/export_date_spec.rb +40 -0
- data/spec/models/export_file_spec.rb +46 -0
- data/spec/models/list_video_view_exports_response_spec.rb +46 -0
- data/spec/spec_helper.rb +9 -2
- metadata +149 -240
data/lib/mux_ruby/api_client.rb
CHANGED
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
=begin
|
|
2
|
-
#
|
|
3
|
-
|
|
2
|
+
#Mux API
|
|
3
|
+
|
|
4
|
+
#Mux is how developers build online video. This API encompasses both Mux Video and Mux Data functionality to help you build your video-related projects better and faster than ever before.
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: v1
|
|
7
|
+
Contact: devex@mux.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
OpenAPI Generator version: 5.0.1
|
|
10
|
+
|
|
4
11
|
=end
|
|
5
12
|
|
|
6
13
|
require 'date'
|
|
7
14
|
require 'json'
|
|
8
15
|
require 'logger'
|
|
9
16
|
require 'tempfile'
|
|
17
|
+
require 'time'
|
|
10
18
|
require 'typhoeus'
|
|
11
|
-
require 'uri'
|
|
12
19
|
|
|
13
20
|
module MuxRuby
|
|
14
21
|
class ApiClient
|
|
@@ -37,7 +44,7 @@ module MuxRuby
|
|
|
37
44
|
|
|
38
45
|
# Call an API with given options.
|
|
39
46
|
#
|
|
40
|
-
# @return [Array<(Object,
|
|
47
|
+
# @return [Array<(Object, Integer, Hash)>] an array of 3 elements:
|
|
41
48
|
# the data deserialized from response body (could be nil), response status code and response headers.
|
|
42
49
|
def call_api(http_method, path, opts = {})
|
|
43
50
|
request = build_request(http_method, path, opts)
|
|
@@ -74,6 +81,11 @@ module MuxRuby
|
|
|
74
81
|
:response_headers => response.headers,
|
|
75
82
|
:response_body => response.body,
|
|
76
83
|
:message => response.status_message)
|
|
84
|
+
elsif response.code.between?(400, 499)
|
|
85
|
+
fail ClientError.new(:code => response.code,
|
|
86
|
+
:response_headers => response.headers,
|
|
87
|
+
:response_body => response.body,
|
|
88
|
+
:message => response.status_message)
|
|
77
89
|
elsif response.code.between?(500, 599)
|
|
78
90
|
fail ServiceError.new(:code => response.code,
|
|
79
91
|
:response_headers => response.headers,
|
|
@@ -105,7 +117,7 @@ module MuxRuby
|
|
|
105
117
|
# @option opts [Object] :body HTTP body (JSON/XML)
|
|
106
118
|
# @return [Typhoeus::Request] A Typhoeus Request
|
|
107
119
|
def build_request(http_method, path, opts = {})
|
|
108
|
-
url = build_request_url(path)
|
|
120
|
+
url = build_request_url(path, opts)
|
|
109
121
|
http_method = http_method.to_sym.downcase
|
|
110
122
|
|
|
111
123
|
header_params = @default_headers.merge(opts[:header_params] || {})
|
|
@@ -121,7 +133,7 @@ module MuxRuby
|
|
|
121
133
|
:method => http_method,
|
|
122
134
|
:headers => header_params,
|
|
123
135
|
:params => query_params,
|
|
124
|
-
:params_encoding =>
|
|
136
|
+
:params_encoding => @config.params_encoding,
|
|
125
137
|
:timeout => @config.timeout,
|
|
126
138
|
:ssl_verifypeer => @config.verify_ssl,
|
|
127
139
|
:ssl_verifyhost => _verify_ssl_host,
|
|
@@ -146,6 +158,72 @@ module MuxRuby
|
|
|
146
158
|
request
|
|
147
159
|
end
|
|
148
160
|
|
|
161
|
+
# Builds the HTTP request body
|
|
162
|
+
#
|
|
163
|
+
# @param [Hash] header_params Header parameters
|
|
164
|
+
# @param [Hash] form_params Query parameters
|
|
165
|
+
# @param [Object] body HTTP body (JSON/XML)
|
|
166
|
+
# @return [String] HTTP body data in the form of string
|
|
167
|
+
def build_request_body(header_params, form_params, body)
|
|
168
|
+
# http form
|
|
169
|
+
if header_params['Content-Type'] == 'application/x-www-form-urlencoded' ||
|
|
170
|
+
header_params['Content-Type'] == 'multipart/form-data'
|
|
171
|
+
data = {}
|
|
172
|
+
form_params.each do |key, value|
|
|
173
|
+
case value
|
|
174
|
+
when ::File, ::Array, nil
|
|
175
|
+
# let typhoeus handle File, Array and nil parameters
|
|
176
|
+
data[key] = value
|
|
177
|
+
else
|
|
178
|
+
data[key] = value.to_s
|
|
179
|
+
end
|
|
180
|
+
end
|
|
181
|
+
elsif body
|
|
182
|
+
data = body.is_a?(String) ? body : body.to_json
|
|
183
|
+
else
|
|
184
|
+
data = nil
|
|
185
|
+
end
|
|
186
|
+
data
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
# Save response body into a file in (the defined) temporary folder, using the filename
|
|
190
|
+
# from the "Content-Disposition" header if provided, otherwise a random filename.
|
|
191
|
+
# The response body is written to the file in chunks in order to handle files which
|
|
192
|
+
# size is larger than maximum Ruby String or even larger than the maximum memory a Ruby
|
|
193
|
+
# process can use.
|
|
194
|
+
#
|
|
195
|
+
# @see Configuration#temp_folder_path
|
|
196
|
+
def download_file(request)
|
|
197
|
+
tempfile = nil
|
|
198
|
+
encoding = nil
|
|
199
|
+
request.on_headers do |response|
|
|
200
|
+
content_disposition = response.headers['Content-Disposition']
|
|
201
|
+
if content_disposition && content_disposition =~ /filename=/i
|
|
202
|
+
filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
|
|
203
|
+
prefix = sanitize_filename(filename)
|
|
204
|
+
else
|
|
205
|
+
prefix = 'download-'
|
|
206
|
+
end
|
|
207
|
+
prefix = prefix + '-' unless prefix.end_with?('-')
|
|
208
|
+
encoding = response.body.encoding
|
|
209
|
+
tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
|
|
210
|
+
@tempfile = tempfile
|
|
211
|
+
end
|
|
212
|
+
request.on_body do |chunk|
|
|
213
|
+
chunk.force_encoding(encoding)
|
|
214
|
+
tempfile.write(chunk)
|
|
215
|
+
end
|
|
216
|
+
request.on_complete do |response|
|
|
217
|
+
if tempfile
|
|
218
|
+
tempfile.close
|
|
219
|
+
@config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
|
|
220
|
+
"with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
|
|
221
|
+
"will be deleted automatically with GC. It's also recommended to delete the temp file "\
|
|
222
|
+
"explicitly with `tempfile.delete`"
|
|
223
|
+
end
|
|
224
|
+
end
|
|
225
|
+
end
|
|
226
|
+
|
|
149
227
|
# Check if the given MIME is a JSON MIME.
|
|
150
228
|
# JSON MIME examples:
|
|
151
229
|
# application/json
|
|
@@ -182,7 +260,7 @@ module MuxRuby
|
|
|
182
260
|
begin
|
|
183
261
|
data = JSON.parse("[#{body}]", :symbolize_names => true)[0]
|
|
184
262
|
rescue JSON::ParserError => e
|
|
185
|
-
if %w(String Date
|
|
263
|
+
if %w(String Date Time).include?(return_type)
|
|
186
264
|
data = body
|
|
187
265
|
else
|
|
188
266
|
raise e
|
|
@@ -205,11 +283,11 @@ module MuxRuby
|
|
|
205
283
|
data.to_i
|
|
206
284
|
when 'Float'
|
|
207
285
|
data.to_f
|
|
208
|
-
when '
|
|
286
|
+
when 'Boolean'
|
|
209
287
|
data == true
|
|
210
|
-
when '
|
|
288
|
+
when 'Time'
|
|
211
289
|
# parse date time (expecting ISO 8601 format)
|
|
212
|
-
|
|
290
|
+
Time.parse data
|
|
213
291
|
when 'Date'
|
|
214
292
|
# parse date time (expecting ISO 8601 format)
|
|
215
293
|
Date.parse data
|
|
@@ -227,44 +305,9 @@ module MuxRuby
|
|
|
227
305
|
data.each { |k, v| hash[k] = convert_to_type(v, sub_type) }
|
|
228
306
|
end
|
|
229
307
|
else
|
|
230
|
-
# models
|
|
231
|
-
MuxRuby.const_get(return_type)
|
|
232
|
-
|
|
233
|
-
end
|
|
234
|
-
|
|
235
|
-
# Save response body into a file in (the defined) temporary folder, using the filename
|
|
236
|
-
# from the "Content-Disposition" header if provided, otherwise a random filename.
|
|
237
|
-
# The response body is written to the file in chunks in order to handle files which
|
|
238
|
-
# size is larger than maximum Ruby String or even larger than the maximum memory a Ruby
|
|
239
|
-
# process can use.
|
|
240
|
-
#
|
|
241
|
-
# @see Configuration#temp_folder_path
|
|
242
|
-
def download_file(request)
|
|
243
|
-
tempfile = nil
|
|
244
|
-
encoding = nil
|
|
245
|
-
request.on_headers do |response|
|
|
246
|
-
content_disposition = response.headers['Content-Disposition']
|
|
247
|
-
if content_disposition && content_disposition =~ /filename=/i
|
|
248
|
-
filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
|
|
249
|
-
prefix = sanitize_filename(filename)
|
|
250
|
-
else
|
|
251
|
-
prefix = 'download-'
|
|
252
|
-
end
|
|
253
|
-
prefix = prefix + '-' unless prefix.end_with?('-')
|
|
254
|
-
encoding = response.body.encoding
|
|
255
|
-
tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
|
|
256
|
-
@tempfile = tempfile
|
|
257
|
-
end
|
|
258
|
-
request.on_body do |chunk|
|
|
259
|
-
chunk.force_encoding(encoding)
|
|
260
|
-
tempfile.write(chunk)
|
|
261
|
-
end
|
|
262
|
-
request.on_complete do |response|
|
|
263
|
-
tempfile.close if tempfile
|
|
264
|
-
@config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
|
|
265
|
-
"with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
|
|
266
|
-
"will be deleted automatically with GC. It's also recommended to delete the temp file "\
|
|
267
|
-
"explicitly with `tempfile.delete`"
|
|
308
|
+
# models (e.g. Pet) or oneOf
|
|
309
|
+
klass = MuxRuby.const_get(return_type)
|
|
310
|
+
klass.respond_to?(:openapi_one_of) ? klass.build(data) : klass.build_from_hash(data)
|
|
268
311
|
end
|
|
269
312
|
end
|
|
270
313
|
|
|
@@ -277,38 +320,10 @@ module MuxRuby
|
|
|
277
320
|
filename.gsub(/.*[\/\\]/, '')
|
|
278
321
|
end
|
|
279
322
|
|
|
280
|
-
def build_request_url(path)
|
|
323
|
+
def build_request_url(path, opts = {})
|
|
281
324
|
# Add leading and trailing slashes to path
|
|
282
325
|
path = "/#{path}".gsub(/\/+/, '/')
|
|
283
|
-
|
|
284
|
-
end
|
|
285
|
-
|
|
286
|
-
# Builds the HTTP request body
|
|
287
|
-
#
|
|
288
|
-
# @param [Hash] header_params Header parameters
|
|
289
|
-
# @param [Hash] form_params Query parameters
|
|
290
|
-
# @param [Object] body HTTP body (JSON/XML)
|
|
291
|
-
# @return [String] HTTP body data in the form of string
|
|
292
|
-
def build_request_body(header_params, form_params, body)
|
|
293
|
-
# http form
|
|
294
|
-
if header_params['Content-Type'] == 'application/x-www-form-urlencoded' ||
|
|
295
|
-
header_params['Content-Type'] == 'multipart/form-data'
|
|
296
|
-
data = {}
|
|
297
|
-
form_params.each do |key, value|
|
|
298
|
-
case value
|
|
299
|
-
when ::File, ::Array, nil
|
|
300
|
-
# let typhoeus handle File, Array and nil parameters
|
|
301
|
-
data[key] = value
|
|
302
|
-
else
|
|
303
|
-
data[key] = value.to_s
|
|
304
|
-
end
|
|
305
|
-
end
|
|
306
|
-
elsif body
|
|
307
|
-
data = body.is_a?(String) ? body : body.to_json
|
|
308
|
-
else
|
|
309
|
-
data = nil
|
|
310
|
-
end
|
|
311
|
-
data
|
|
326
|
+
@config.base_url(opts[:operation]) + path
|
|
312
327
|
end
|
|
313
328
|
|
|
314
329
|
# Update hearder and query params based on authentication settings.
|
|
@@ -323,7 +338,7 @@ module MuxRuby
|
|
|
323
338
|
case auth_setting[:in]
|
|
324
339
|
when 'header' then header_params[auth_setting[:key]] = auth_setting[:value]
|
|
325
340
|
when 'query' then query_params[auth_setting[:key]] = auth_setting[:value]
|
|
326
|
-
else fail ArgumentError, 'Authentication token must be in `query`
|
|
341
|
+
else fail ArgumentError, 'Authentication token must be in `query` or `header`'
|
|
327
342
|
end
|
|
328
343
|
end
|
|
329
344
|
end
|
data/lib/mux_ruby/api_error.rb
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
=begin
|
|
2
|
-
#
|
|
3
|
-
|
|
2
|
+
#Mux API
|
|
3
|
+
|
|
4
|
+
#Mux is how developers build online video. This API encompasses both Mux Video and Mux Data functionality to help you build your video-related projects better and faster than ever before.
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: v1
|
|
7
|
+
Contact: devex@mux.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
OpenAPI Generator version: 5.0.1
|
|
10
|
+
|
|
4
11
|
=end
|
|
5
12
|
|
|
6
13
|
module MuxRuby
|
|
@@ -27,21 +34,42 @@ module MuxRuby
|
|
|
27
34
|
super arg
|
|
28
35
|
end
|
|
29
36
|
end
|
|
37
|
+
|
|
38
|
+
# Override to_s to display a friendly error message
|
|
39
|
+
def to_s
|
|
40
|
+
message
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def message
|
|
44
|
+
if @message.nil?
|
|
45
|
+
msg = "Error message: the server returns an error"
|
|
46
|
+
else
|
|
47
|
+
msg = @message
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
msg += "\nHTTP status code: #{code}" if code
|
|
51
|
+
msg += "\nResponse headers: #{response_headers}" if response_headers
|
|
52
|
+
msg += "\nResponse body: #{response_body}" if response_body
|
|
53
|
+
|
|
54
|
+
msg
|
|
55
|
+
end
|
|
30
56
|
end
|
|
31
57
|
|
|
32
|
-
class
|
|
58
|
+
class ClientError < ApiError
|
|
33
59
|
end
|
|
34
60
|
|
|
35
|
-
class
|
|
61
|
+
class NotFoundError < ClientError
|
|
36
62
|
end
|
|
37
63
|
|
|
38
|
-
class
|
|
64
|
+
class UnauthorizedError < ClientError
|
|
39
65
|
end
|
|
40
66
|
|
|
41
|
-
class
|
|
67
|
+
class ForbiddenError < ClientError
|
|
42
68
|
end
|
|
43
69
|
|
|
44
|
-
class TooManyRequestsError <
|
|
70
|
+
class TooManyRequestsError < ClientError
|
|
45
71
|
end
|
|
46
72
|
|
|
73
|
+
class ServiceError < ApiError
|
|
74
|
+
end
|
|
47
75
|
end
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
=begin
|
|
2
|
-
#
|
|
3
|
-
|
|
2
|
+
#Mux API
|
|
3
|
+
|
|
4
|
+
#Mux is how developers build online video. This API encompasses both Mux Video and Mux Data functionality to help you build your video-related projects better and faster than ever before.
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: v1
|
|
7
|
+
Contact: devex@mux.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
OpenAPI Generator version: 5.0.1
|
|
10
|
+
|
|
4
11
|
=end
|
|
5
12
|
|
|
6
13
|
module MuxRuby
|
|
@@ -14,6 +21,18 @@ module MuxRuby
|
|
|
14
21
|
# Defines url base path
|
|
15
22
|
attr_accessor :base_path
|
|
16
23
|
|
|
24
|
+
# Define server configuration index
|
|
25
|
+
attr_accessor :server_index
|
|
26
|
+
|
|
27
|
+
# Define server operation configuration index
|
|
28
|
+
attr_accessor :server_operation_index
|
|
29
|
+
|
|
30
|
+
# Default server variables
|
|
31
|
+
attr_accessor :server_variables
|
|
32
|
+
|
|
33
|
+
# Default server operation variables
|
|
34
|
+
attr_accessor :server_operation_variables
|
|
35
|
+
|
|
17
36
|
# Defines API keys used with API Key authentications.
|
|
18
37
|
#
|
|
19
38
|
# @return [Hash] key: parameter name, value: parameter value (API key)
|
|
@@ -122,13 +141,17 @@ module MuxRuby
|
|
|
122
141
|
@scheme = 'https'
|
|
123
142
|
@host = 'api.mux.com'
|
|
124
143
|
@base_path = ''
|
|
144
|
+
@server_index = 0
|
|
145
|
+
@server_operation_index = {}
|
|
146
|
+
@server_variables = {}
|
|
147
|
+
@server_operation_variables = {}
|
|
125
148
|
@api_key = {}
|
|
126
149
|
@api_key_prefix = {}
|
|
127
150
|
@timeout = 0
|
|
128
151
|
@client_side_validation = true
|
|
129
152
|
@verify_ssl = true
|
|
130
153
|
@verify_ssl_host = true
|
|
131
|
-
@params_encoding = nil
|
|
154
|
+
@params_encoding = :multi # original value: nil
|
|
132
155
|
@cert_file = nil
|
|
133
156
|
@key_file = nil
|
|
134
157
|
@debugging = false
|
|
@@ -164,17 +187,23 @@ module MuxRuby
|
|
|
164
187
|
@base_path = '' if @base_path == '/'
|
|
165
188
|
end
|
|
166
189
|
|
|
167
|
-
|
|
168
|
-
|
|
190
|
+
# Returns base URL for specified operation based on server settings
|
|
191
|
+
def base_url(operation = nil)
|
|
192
|
+
index = server_operation_index.fetch(operation, server_index)
|
|
193
|
+
return "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '') if index == nil
|
|
194
|
+
|
|
195
|
+
server_url(index, server_operation_variables.fetch(operation, server_variables), operation_server_settings[operation])
|
|
169
196
|
end
|
|
170
197
|
|
|
171
198
|
# Gets API key (with prefix if set).
|
|
172
199
|
# @param [String] param_name the parameter name of API key auth
|
|
173
|
-
def api_key_with_prefix(param_name)
|
|
200
|
+
def api_key_with_prefix(param_name, param_alias = nil)
|
|
201
|
+
key = @api_key[param_name]
|
|
202
|
+
key = @api_key.fetch(param_alias, key) unless param_alias.nil?
|
|
174
203
|
if @api_key_prefix[param_name]
|
|
175
|
-
"#{@api_key_prefix[param_name]} #{
|
|
204
|
+
"#{@api_key_prefix[param_name]} #{key}"
|
|
176
205
|
else
|
|
177
|
-
|
|
206
|
+
key
|
|
178
207
|
end
|
|
179
208
|
end
|
|
180
209
|
|
|
@@ -200,31 +229,38 @@ module MuxRuby
|
|
|
200
229
|
def server_settings
|
|
201
230
|
[
|
|
202
231
|
{
|
|
203
|
-
url: "https://api.mux.com
|
|
232
|
+
url: "https://api.mux.com",
|
|
204
233
|
description: "Mux Production Environment",
|
|
205
234
|
}
|
|
206
235
|
]
|
|
207
236
|
end
|
|
208
237
|
|
|
238
|
+
def operation_server_settings
|
|
239
|
+
{
|
|
240
|
+
}
|
|
241
|
+
end
|
|
242
|
+
|
|
209
243
|
# Returns URL based on server settings
|
|
210
244
|
#
|
|
211
245
|
# @param index array index of the server settings
|
|
212
246
|
# @param variables hash of variable and the corresponding value
|
|
213
|
-
def server_url(index, variables = {})
|
|
214
|
-
servers = server_settings
|
|
247
|
+
def server_url(index, variables = {}, servers = nil)
|
|
248
|
+
servers = server_settings if servers == nil
|
|
215
249
|
|
|
216
250
|
# check array index out of bound
|
|
217
|
-
if (index < 0 || index
|
|
218
|
-
fail ArgumentError "Invalid index #{index} when selecting the server. Must be less than #{servers.size}"
|
|
251
|
+
if (index < 0 || index >= servers.size)
|
|
252
|
+
fail ArgumentError, "Invalid index #{index} when selecting the server. Must be less than #{servers.size}"
|
|
219
253
|
end
|
|
220
254
|
|
|
221
255
|
server = servers[index]
|
|
222
256
|
url = server[:url]
|
|
223
257
|
|
|
258
|
+
return url unless server.key? :variables
|
|
259
|
+
|
|
224
260
|
# go through variable and assign a value
|
|
225
261
|
server[:variables].each do |name, variable|
|
|
226
262
|
if variables.key?(name)
|
|
227
|
-
if (server[:variables][name][:enum_values].include?
|
|
263
|
+
if (!server[:variables][name].key?(:enum_values) || server[:variables][name][:enum_values].include?(variables[name]))
|
|
228
264
|
url.gsub! "{" + name.to_s + "}", variables[name]
|
|
229
265
|
else
|
|
230
266
|
fail ArgumentError, "The variable `#{name}` in the server URL has invalid value #{variables[name]}. Must be #{server[:variables][name][:enum_values]}."
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
=begin
|
|
2
|
-
#
|
|
3
|
-
|
|
2
|
+
#Mux API
|
|
3
|
+
|
|
4
|
+
#Mux is how developers build online video. This API encompasses both Mux Video and Mux Data functionality to help you build your video-related projects better and faster than ever before.
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: v1
|
|
7
|
+
Contact: devex@mux.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
OpenAPI Generator version: 5.0.1
|
|
10
|
+
|
|
4
11
|
=end
|
|
5
12
|
|
|
6
13
|
require 'date'
|
|
14
|
+
require 'time'
|
|
7
15
|
|
|
8
16
|
module MuxRuby
|
|
9
17
|
class AbridgedVideoView
|
|
@@ -46,6 +54,11 @@ module MuxRuby
|
|
|
46
54
|
}
|
|
47
55
|
end
|
|
48
56
|
|
|
57
|
+
# Returns all the JSON keys this model knows about
|
|
58
|
+
def self.acceptable_attributes
|
|
59
|
+
attribute_map.values
|
|
60
|
+
end
|
|
61
|
+
|
|
49
62
|
# Attribute type mapping.
|
|
50
63
|
def self.openapi_types
|
|
51
64
|
{
|
|
@@ -63,55 +76,68 @@ module MuxRuby
|
|
|
63
76
|
}
|
|
64
77
|
end
|
|
65
78
|
|
|
79
|
+
# List of attributes with nullable: true
|
|
80
|
+
def self.openapi_nullable
|
|
81
|
+
Set.new([
|
|
82
|
+
])
|
|
83
|
+
end
|
|
84
|
+
|
|
66
85
|
# Initializes the object
|
|
67
86
|
# @param [Hash] attributes Model attributes in the form of hash
|
|
68
87
|
def initialize(attributes = {})
|
|
69
|
-
|
|
88
|
+
if (!attributes.is_a?(Hash))
|
|
89
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `MuxRuby::AbridgedVideoView` initialize method"
|
|
90
|
+
end
|
|
70
91
|
|
|
71
|
-
# convert string to symbol for hash key
|
|
72
|
-
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
92
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
|
93
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
94
|
+
if (!self.class.attribute_map.key?(k.to_sym))
|
|
95
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `MuxRuby::AbridgedVideoView`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
|
|
96
|
+
end
|
|
97
|
+
h[k.to_sym] = v
|
|
98
|
+
}
|
|
73
99
|
|
|
74
|
-
if attributes.
|
|
100
|
+
if attributes.key?(:'id')
|
|
75
101
|
self.id = attributes[:'id']
|
|
76
102
|
end
|
|
77
103
|
|
|
78
|
-
if attributes.
|
|
104
|
+
if attributes.key?(:'viewer_os_family')
|
|
79
105
|
self.viewer_os_family = attributes[:'viewer_os_family']
|
|
80
106
|
end
|
|
81
107
|
|
|
82
|
-
if attributes.
|
|
108
|
+
if attributes.key?(:'viewer_application_name')
|
|
83
109
|
self.viewer_application_name = attributes[:'viewer_application_name']
|
|
84
110
|
end
|
|
85
111
|
|
|
86
|
-
if attributes.
|
|
112
|
+
if attributes.key?(:'video_title')
|
|
87
113
|
self.video_title = attributes[:'video_title']
|
|
88
114
|
end
|
|
89
115
|
|
|
90
|
-
if attributes.
|
|
116
|
+
if attributes.key?(:'total_row_count')
|
|
91
117
|
self.total_row_count = attributes[:'total_row_count']
|
|
92
118
|
end
|
|
93
119
|
|
|
94
|
-
if attributes.
|
|
120
|
+
if attributes.key?(:'player_error_message')
|
|
95
121
|
self.player_error_message = attributes[:'player_error_message']
|
|
96
122
|
end
|
|
97
123
|
|
|
98
|
-
if attributes.
|
|
124
|
+
if attributes.key?(:'player_error_code')
|
|
99
125
|
self.player_error_code = attributes[:'player_error_code']
|
|
100
126
|
end
|
|
101
127
|
|
|
102
|
-
if attributes.
|
|
128
|
+
if attributes.key?(:'error_type_id')
|
|
103
129
|
self.error_type_id = attributes[:'error_type_id']
|
|
104
130
|
end
|
|
105
131
|
|
|
106
|
-
if attributes.
|
|
132
|
+
if attributes.key?(:'country_code')
|
|
107
133
|
self.country_code = attributes[:'country_code']
|
|
108
134
|
end
|
|
109
135
|
|
|
110
|
-
if attributes.
|
|
136
|
+
if attributes.key?(:'view_start')
|
|
111
137
|
self.view_start = attributes[:'view_start']
|
|
112
138
|
end
|
|
113
139
|
|
|
114
|
-
if attributes.
|
|
140
|
+
if attributes.key?(:'view_end')
|
|
115
141
|
self.view_end = attributes[:'view_end']
|
|
116
142
|
end
|
|
117
143
|
end
|
|
@@ -154,7 +180,7 @@ module MuxRuby
|
|
|
154
180
|
end
|
|
155
181
|
|
|
156
182
|
# Calculates hash code according to all attributes.
|
|
157
|
-
# @return [
|
|
183
|
+
# @return [Integer] Hash code
|
|
158
184
|
def hash
|
|
159
185
|
[id, viewer_os_family, viewer_application_name, video_title, total_row_count, player_error_message, player_error_code, error_type_id, country_code, view_start, view_end].hash
|
|
160
186
|
end
|
|
@@ -172,7 +198,9 @@ module MuxRuby
|
|
|
172
198
|
def build_from_hash(attributes)
|
|
173
199
|
return nil unless attributes.is_a?(Hash)
|
|
174
200
|
self.class.openapi_types.each_pair do |key, type|
|
|
175
|
-
if
|
|
201
|
+
if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
|
|
202
|
+
self.send("#{key}=", nil)
|
|
203
|
+
elsif type =~ /\AArray<(.*)>/i
|
|
176
204
|
# check to ensure the input is an array given that the attribute
|
|
177
205
|
# is documented as an array but the input is not
|
|
178
206
|
if attributes[self.class.attribute_map[key]].is_a?(Array)
|
|
@@ -180,7 +208,7 @@ module MuxRuby
|
|
|
180
208
|
end
|
|
181
209
|
elsif !attributes[self.class.attribute_map[key]].nil?
|
|
182
210
|
self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
|
|
183
|
-
end
|
|
211
|
+
end
|
|
184
212
|
end
|
|
185
213
|
|
|
186
214
|
self
|
|
@@ -192,8 +220,8 @@ module MuxRuby
|
|
|
192
220
|
# @return [Object] Deserialized data
|
|
193
221
|
def _deserialize(type, value)
|
|
194
222
|
case type.to_sym
|
|
195
|
-
when :
|
|
196
|
-
|
|
223
|
+
when :Time
|
|
224
|
+
Time.parse(value)
|
|
197
225
|
when :Date
|
|
198
226
|
Date.parse(value)
|
|
199
227
|
when :String
|
|
@@ -202,7 +230,7 @@ module MuxRuby
|
|
|
202
230
|
value.to_i
|
|
203
231
|
when :Float
|
|
204
232
|
value.to_f
|
|
205
|
-
when :
|
|
233
|
+
when :Boolean
|
|
206
234
|
if value.to_s =~ /\A(true|t|yes|y|1)\z/i
|
|
207
235
|
true
|
|
208
236
|
else
|
|
@@ -223,7 +251,9 @@ module MuxRuby
|
|
|
223
251
|
end
|
|
224
252
|
end
|
|
225
253
|
else # model
|
|
226
|
-
|
|
254
|
+
# models (e.g. Pet) or oneOf
|
|
255
|
+
klass = MuxRuby.const_get(type)
|
|
256
|
+
klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
|
|
227
257
|
end
|
|
228
258
|
end
|
|
229
259
|
|
|
@@ -245,7 +275,11 @@ module MuxRuby
|
|
|
245
275
|
hash = {}
|
|
246
276
|
self.class.attribute_map.each_pair do |attr, param|
|
|
247
277
|
value = self.send(attr)
|
|
248
|
-
|
|
278
|
+
if value.nil?
|
|
279
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
|
280
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
281
|
+
end
|
|
282
|
+
|
|
249
283
|
hash[param] = _to_hash(value)
|
|
250
284
|
end
|
|
251
285
|
hash
|