algolia 3.0.0.beta.8 → 3.0.0.beta.9
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/.github/workflows/release.yml +2 -0
- data/CHANGELOG.md +8 -0
- data/Gemfile.lock +3 -30
- data/Rakefile +0 -2
- data/algolia.gemspec +1 -1
- data/lib/algolia/api/abtesting_client.rb +52 -37
- data/lib/algolia/api/analytics_client.rb +415 -116
- data/lib/algolia/api/ingestion_client.rb +462 -182
- data/lib/algolia/api/insights_client.rb +45 -28
- data/lib/algolia/api/monitoring_client.rb +50 -44
- data/lib/algolia/api/personalization_client.rb +57 -32
- data/lib/algolia/api/query_suggestions_client.rb +59 -40
- data/lib/algolia/api/recommend_client.rb +70 -43
- data/lib/algolia/api/search_client.rb +461 -264
- data/lib/algolia/api/usage_client.rb +48 -28
- data/lib/algolia/api_client.rb +25 -24
- data/lib/algolia/api_error.rb +8 -8
- data/lib/algolia/configuration.rb +17 -6
- data/lib/algolia/error.rb +2 -2
- data/lib/algolia/logger_helper.rb +4 -4
- data/lib/algolia/models/abtesting/ab_test.rb +62 -37
- data/lib/algolia/models/abtesting/ab_test_configuration.rb +35 -20
- data/lib/algolia/models/abtesting/ab_test_response.rb +35 -20
- data/lib/algolia/models/abtesting/ab_tests_variant.rb +38 -23
- data/lib/algolia/models/abtesting/ab_tests_variant_search_params.rb +41 -26
- data/lib/algolia/models/abtesting/add_ab_tests_request.rb +38 -23
- data/lib/algolia/models/abtesting/add_ab_tests_variant.rb +33 -24
- data/lib/algolia/models/abtesting/currency.rb +32 -20
- data/lib/algolia/models/abtesting/custom_search_params.rb +33 -18
- data/lib/algolia/models/abtesting/effect.rb +2 -3
- data/lib/algolia/models/abtesting/empty_search.rb +33 -18
- data/lib/algolia/models/abtesting/error_base.rb +24 -13
- data/lib/algolia/models/abtesting/filter_effects.rb +34 -19
- data/lib/algolia/models/abtesting/filter_effects_empty_search.rb +34 -19
- data/lib/algolia/models/abtesting/filter_effects_outliers.rb +34 -19
- data/lib/algolia/models/abtesting/list_ab_tests_response.rb +37 -22
- data/lib/algolia/models/abtesting/minimum_detectable_effect.rb +37 -22
- data/lib/algolia/models/abtesting/outliers.rb +29 -17
- data/lib/algolia/models/abtesting/status.rb +2 -3
- data/lib/algolia/models/abtesting/variant.rb +83 -51
- data/lib/algolia/models/analytics/click_positions_inner.rb +39 -24
- data/lib/algolia/models/analytics/currencies_value.rb +34 -19
- data/lib/algolia/models/analytics/daily_add_to_cart_rates.rb +42 -27
- data/lib/algolia/models/analytics/daily_average_clicks.rb +40 -25
- data/lib/algolia/models/analytics/daily_click_through_rates.rb +42 -27
- data/lib/algolia/models/analytics/daily_conversion_rates.rb +42 -27
- data/lib/algolia/models/analytics/daily_no_click_rates.rb +41 -26
- data/lib/algolia/models/analytics/daily_no_results_rates.rb +39 -24
- data/lib/algolia/models/analytics/daily_purchase_rates.rb +40 -25
- data/lib/algolia/models/analytics/daily_revenue.rb +34 -19
- data/lib/algolia/models/analytics/daily_searches.rb +34 -19
- data/lib/algolia/models/analytics/daily_searches_no_clicks.rb +37 -22
- data/lib/algolia/models/analytics/daily_searches_no_results.rb +37 -22
- data/lib/algolia/models/analytics/daily_users.rb +34 -19
- data/lib/algolia/models/analytics/direction.rb +2 -3
- data/lib/algolia/models/analytics/error_base.rb +24 -13
- data/lib/algolia/models/analytics/get_add_to_cart_rate_response.rb +42 -27
- data/lib/algolia/models/analytics/get_average_click_position_response.rb +40 -25
- data/lib/algolia/models/analytics/get_click_positions_response.rb +36 -21
- data/lib/algolia/models/analytics/get_click_through_rate_response.rb +42 -27
- data/lib/algolia/models/analytics/get_conversion_rate_response.rb +42 -27
- data/lib/algolia/models/analytics/get_no_click_rate_response.rb +41 -26
- data/lib/algolia/models/analytics/get_no_results_rate_response.rb +39 -24
- data/lib/algolia/models/analytics/get_purchase_rate_response.rb +40 -25
- data/lib/algolia/models/analytics/get_revenue.rb +34 -19
- data/lib/algolia/models/analytics/get_searches_count_response.rb +34 -19
- data/lib/algolia/models/analytics/get_searches_no_clicks_response.rb +33 -18
- data/lib/algolia/models/analytics/get_searches_no_results_response.rb +33 -18
- data/lib/algolia/models/analytics/get_status_response.rb +35 -20
- data/lib/algolia/models/analytics/get_top_countries_response.rb +33 -18
- data/lib/algolia/models/analytics/get_top_filter_attribute.rb +34 -19
- data/lib/algolia/models/analytics/get_top_filter_attributes_response.rb +33 -18
- data/lib/algolia/models/analytics/get_top_filter_for_attribute.rb +36 -21
- data/lib/algolia/models/analytics/get_top_filter_for_attribute_response.rb +33 -18
- data/lib/algolia/models/analytics/get_top_filters_no_results_response.rb +35 -20
- data/lib/algolia/models/analytics/get_top_filters_no_results_value.rb +35 -20
- data/lib/algolia/models/analytics/get_top_filters_no_results_values.rb +34 -19
- data/lib/algolia/models/analytics/get_top_hits_response.rb +34 -25
- data/lib/algolia/models/analytics/get_top_searches_response.rb +34 -25
- data/lib/algolia/models/analytics/get_users_count_response.rb +34 -19
- data/lib/algolia/models/analytics/operator.rb +2 -3
- data/lib/algolia/models/analytics/order_by.rb +2 -3
- data/lib/algolia/models/analytics/top_country.rb +34 -19
- data/lib/algolia/models/analytics/top_hit.rb +30 -18
- data/lib/algolia/models/analytics/top_hit_with_analytics.rb +50 -35
- data/lib/algolia/models/analytics/top_hit_with_revenue_analytics.rb +77 -50
- data/lib/algolia/models/analytics/top_hits_response.rb +33 -18
- data/lib/algolia/models/analytics/top_hits_response_with_analytics.rb +33 -18
- data/lib/algolia/models/analytics/top_hits_response_with_revenue_analytics.rb +33 -18
- data/lib/algolia/models/analytics/top_search.rb +35 -20
- data/lib/algolia/models/analytics/top_search_with_analytics.rb +76 -44
- data/lib/algolia/models/analytics/top_search_with_revenue_analytics.rb +94 -58
- data/lib/algolia/models/analytics/top_searches_response.rb +33 -18
- data/lib/algolia/models/analytics/top_searches_response_with_analytics.rb +33 -18
- data/lib/algolia/models/analytics/top_searches_response_with_revenue_analytics.rb +33 -18
- data/lib/algolia/models/ingestion/action_type.rb +2 -3
- data/lib/algolia/models/ingestion/auth_algolia.rb +34 -19
- data/lib/algolia/models/ingestion/auth_algolia_insights.rb +34 -19
- data/lib/algolia/models/ingestion/auth_algolia_insights_partial.rb +34 -19
- data/lib/algolia/models/ingestion/auth_algolia_partial.rb +34 -19
- data/lib/algolia/models/ingestion/auth_api_key.rb +33 -18
- data/lib/algolia/models/ingestion/auth_api_key_partial.rb +33 -18
- data/lib/algolia/models/ingestion/auth_basic.rb +34 -19
- data/lib/algolia/models/ingestion/auth_basic_partial.rb +34 -19
- data/lib/algolia/models/ingestion/auth_google_service_account.rb +34 -19
- data/lib/algolia/models/ingestion/auth_google_service_account_partial.rb +34 -19
- data/lib/algolia/models/ingestion/auth_input.rb +37 -28
- data/lib/algolia/models/ingestion/auth_input_partial.rb +37 -28
- data/lib/algolia/models/ingestion/auth_o_auth.rb +36 -21
- data/lib/algolia/models/ingestion/auth_o_auth_partial.rb +36 -21
- data/lib/algolia/models/ingestion/authentication.rb +41 -26
- data/lib/algolia/models/ingestion/authentication_create.rb +38 -23
- data/lib/algolia/models/ingestion/authentication_create_response.rb +35 -20
- data/lib/algolia/models/ingestion/authentication_search.rb +33 -18
- data/lib/algolia/models/ingestion/authentication_sort_keys.rb +2 -3
- data/lib/algolia/models/ingestion/authentication_type.rb +2 -3
- data/lib/algolia/models/ingestion/authentication_update.rb +38 -23
- data/lib/algolia/models/ingestion/authentication_update_response.rb +35 -20
- data/lib/algolia/models/ingestion/big_commerce_channel.rb +34 -19
- data/lib/algolia/models/ingestion/big_commerce_metafield.rb +34 -19
- data/lib/algolia/models/ingestion/big_query_data_type.rb +2 -3
- data/lib/algolia/models/ingestion/commercetools_custom_fields.rb +39 -24
- data/lib/algolia/models/ingestion/delete_response.rb +33 -18
- data/lib/algolia/models/ingestion/destination.rb +39 -24
- data/lib/algolia/models/ingestion/destination_create.rb +36 -21
- data/lib/algolia/models/ingestion/destination_create_response.rb +35 -20
- data/lib/algolia/models/ingestion/destination_index_name.rb +35 -20
- data/lib/algolia/models/ingestion/destination_index_prefix.rb +33 -18
- data/lib/algolia/models/ingestion/destination_input.rb +33 -24
- data/lib/algolia/models/ingestion/destination_search.rb +33 -18
- data/lib/algolia/models/ingestion/destination_sort_keys.rb +2 -3
- data/lib/algolia/models/ingestion/destination_type.rb +2 -3
- data/lib/algolia/models/ingestion/destination_update.rb +36 -21
- data/lib/algolia/models/ingestion/destination_update_response.rb +35 -20
- data/lib/algolia/models/ingestion/docker_image_type.rb +2 -3
- data/lib/algolia/models/ingestion/docker_registry.rb +2 -3
- data/lib/algolia/models/ingestion/{on_demand_date_utils_input.rb → docker_streams_input.rb} +41 -49
- data/lib/algolia/models/ingestion/error_base.rb +24 -13
- data/lib/algolia/models/ingestion/event.rb +38 -26
- data/lib/algolia/models/ingestion/event_sort_keys.rb +2 -3
- data/lib/algolia/models/ingestion/event_status.rb +2 -3
- data/lib/algolia/models/ingestion/event_type.rb +2 -3
- data/lib/algolia/models/ingestion/list_authentications_response.rb +34 -19
- data/lib/algolia/models/ingestion/list_destinations_response.rb +34 -19
- data/lib/algolia/models/ingestion/list_events_response.rb +35 -20
- data/lib/algolia/models/ingestion/list_sources_response.rb +34 -19
- data/lib/algolia/models/ingestion/list_tasks_response.rb +34 -19
- data/lib/algolia/models/ingestion/list_transformations_response.rb +34 -19
- data/lib/algolia/models/ingestion/mapping_field_directive.rb +34 -19
- data/lib/algolia/models/ingestion/mapping_format_schema.rb +2 -3
- data/lib/algolia/models/ingestion/mapping_input.rb +34 -19
- data/lib/algolia/models/ingestion/mapping_kit_action.rb +36 -21
- data/lib/algolia/models/ingestion/mapping_type_csv.rb +2 -3
- data/lib/algolia/models/ingestion/method_type.rb +2 -3
- data/lib/algolia/models/ingestion/on_demand_trigger.rb +34 -19
- data/lib/algolia/models/ingestion/on_demand_trigger_input.rb +33 -18
- data/lib/algolia/models/ingestion/on_demand_trigger_type.rb +2 -3
- data/lib/algolia/models/ingestion/order_keys.rb +2 -3
- data/lib/algolia/models/ingestion/pagination.rb +45 -30
- data/lib/algolia/models/ingestion/platform.rb +2 -3
- data/lib/algolia/models/ingestion/platform_none.rb +2 -3
- data/lib/algolia/models/ingestion/platform_with_none.rb +33 -24
- data/lib/algolia/models/ingestion/record_type.rb +2 -3
- data/lib/algolia/models/ingestion/run.rb +59 -33
- data/lib/algolia/models/ingestion/run_list_response.rb +35 -20
- data/lib/algolia/models/ingestion/run_outcome.rb +2 -3
- data/lib/algolia/models/ingestion/run_progress.rb +34 -19
- data/lib/algolia/models/ingestion/run_reason_code.rb +2 -3
- data/lib/algolia/models/ingestion/run_response.rb +34 -19
- data/lib/algolia/models/ingestion/run_sort_keys.rb +2 -3
- data/lib/algolia/models/ingestion/run_status.rb +2 -3
- data/lib/algolia/models/ingestion/run_type.rb +2 -3
- data/lib/algolia/models/ingestion/schedule_trigger.rb +36 -21
- data/lib/algolia/models/ingestion/schedule_trigger_input.rb +34 -19
- data/lib/algolia/models/ingestion/schedule_trigger_type.rb +2 -3
- data/lib/algolia/models/ingestion/shopify_input.rb +34 -19
- data/lib/algolia/models/ingestion/shopify_market.rb +35 -20
- data/lib/algolia/models/ingestion/shopify_metafield.rb +35 -20
- data/lib/algolia/models/ingestion/sort_keys.rb +2 -3
- data/lib/algolia/models/ingestion/source.rb +35 -23
- data/lib/algolia/models/ingestion/source_big_commerce.rb +37 -22
- data/lib/algolia/models/ingestion/source_big_query.rb +39 -24
- data/lib/algolia/models/ingestion/source_commercetools.rb +38 -23
- data/lib/algolia/models/ingestion/source_create.rb +36 -21
- data/lib/algolia/models/ingestion/source_create_response.rb +35 -20
- data/lib/algolia/models/ingestion/source_csv.rb +43 -25
- data/lib/algolia/models/ingestion/source_docker.rb +37 -22
- data/lib/algolia/models/ingestion/source_ga4_big_query_export.rb +35 -20
- data/lib/algolia/models/ingestion/source_input.rb +39 -30
- data/lib/algolia/models/ingestion/source_json.rb +35 -20
- data/lib/algolia/models/ingestion/source_search.rb +33 -18
- data/lib/algolia/models/ingestion/source_shopify.rb +52 -29
- data/lib/algolia/models/ingestion/source_shopify_base.rb +33 -18
- data/lib/algolia/models/ingestion/source_sort_keys.rb +2 -3
- data/lib/algolia/models/ingestion/source_type.rb +2 -3
- data/lib/algolia/models/ingestion/source_update.rb +35 -20
- data/lib/algolia/models/ingestion/source_update_commercetools.rb +37 -22
- data/lib/algolia/models/ingestion/source_update_docker.rb +36 -21
- data/lib/algolia/models/ingestion/source_update_input.rb +38 -29
- data/lib/algolia/models/ingestion/source_update_response.rb +35 -20
- data/lib/algolia/models/ingestion/source_update_shopify.rb +48 -26
- data/lib/algolia/models/ingestion/source_watch_response.rb +36 -21
- data/lib/algolia/models/ingestion/{streaming_utils_input.rb → streaming_input.rb} +34 -19
- data/lib/algolia/models/ingestion/streaming_trigger.rb +33 -18
- data/lib/algolia/models/ingestion/streaming_trigger_type.rb +2 -3
- data/lib/algolia/models/ingestion/subscription_trigger.rb +33 -18
- data/lib/algolia/models/ingestion/subscription_trigger_type.rb +2 -3
- data/lib/algolia/models/ingestion/task.rb +55 -31
- data/lib/algolia/models/ingestion/task_create.rb +43 -28
- data/lib/algolia/models/ingestion/task_create_response.rb +34 -19
- data/lib/algolia/models/ingestion/task_create_trigger.rb +35 -26
- data/lib/algolia/models/ingestion/task_input.rb +34 -26
- data/lib/algolia/models/ingestion/task_search.rb +33 -18
- data/lib/algolia/models/ingestion/task_sort_keys.rb +2 -3
- data/lib/algolia/models/ingestion/task_update.rb +40 -25
- data/lib/algolia/models/ingestion/task_update_response.rb +34 -19
- data/lib/algolia/models/ingestion/transformation.rb +38 -25
- data/lib/algolia/models/ingestion/transformation_create.rb +35 -22
- data/lib/algolia/models/ingestion/transformation_create_response.rb +34 -19
- data/lib/algolia/models/ingestion/transformation_search.rb +33 -18
- data/lib/algolia/models/ingestion/transformation_try.rb +34 -19
- data/lib/algolia/models/ingestion/transformation_try_response.rb +34 -19
- data/lib/algolia/models/ingestion/transformation_try_response_error.rb +34 -19
- data/lib/algolia/models/ingestion/transformation_update_response.rb +34 -19
- data/lib/algolia/models/ingestion/trigger.rb +35 -26
- data/lib/algolia/models/ingestion/trigger_type.rb +2 -3
- data/lib/algolia/models/ingestion/trigger_update_input.rb +33 -18
- data/lib/algolia/models/ingestion/window.rb +30 -18
- data/lib/algolia/models/insights/add_to_cart_event.rb +2 -3
- data/lib/algolia/models/insights/added_to_cart_object_ids.rb +91 -46
- data/lib/algolia/models/insights/added_to_cart_object_ids_after_search.rb +99 -50
- data/lib/algolia/models/insights/click_event.rb +2 -3
- data/lib/algolia/models/insights/clicked_filters.rb +71 -38
- data/lib/algolia/models/insights/clicked_object_ids.rb +71 -38
- data/lib/algolia/models/insights/clicked_object_ids_after_search.rb +93 -47
- data/lib/algolia/models/insights/conversion_event.rb +2 -3
- data/lib/algolia/models/insights/converted_filters.rb +71 -38
- data/lib/algolia/models/insights/converted_object_ids.rb +71 -38
- data/lib/algolia/models/insights/converted_object_ids_after_search.rb +78 -42
- data/lib/algolia/models/insights/discount.rb +33 -24
- data/lib/algolia/models/insights/error_base.rb +24 -13
- data/lib/algolia/models/insights/events_items.rb +43 -34
- data/lib/algolia/models/insights/events_response.rb +34 -19
- data/lib/algolia/models/insights/insights_events.rb +36 -21
- data/lib/algolia/models/insights/object_data.rb +35 -20
- data/lib/algolia/models/insights/object_data_after_search.rb +42 -24
- data/lib/algolia/models/insights/price.rb +33 -24
- data/lib/algolia/models/insights/purchase_event.rb +2 -3
- data/lib/algolia/models/insights/purchased_object_ids.rb +91 -46
- data/lib/algolia/models/insights/purchased_object_ids_after_search.rb +91 -46
- data/lib/algolia/models/insights/value.rb +33 -24
- data/lib/algolia/models/insights/view_event.rb +2 -3
- data/lib/algolia/models/insights/viewed_filters.rb +71 -38
- data/lib/algolia/models/insights/viewed_object_ids.rb +71 -38
- data/lib/algolia/models/monitoring/error_base.rb +24 -13
- data/lib/algolia/models/monitoring/get_servers403_response.rb +33 -18
- data/lib/algolia/models/monitoring/incident.rb +30 -18
- data/lib/algolia/models/monitoring/incidents_inner.rb +34 -19
- data/lib/algolia/models/monitoring/incidents_response.rb +33 -18
- data/lib/algolia/models/monitoring/indexing_time_response.rb +33 -18
- data/lib/algolia/models/monitoring/indexing_time_response_metrics.rb +33 -18
- data/lib/algolia/models/monitoring/infrastructure_response.rb +33 -18
- data/lib/algolia/models/monitoring/infrastructure_response_metrics.rb +37 -22
- data/lib/algolia/models/monitoring/inventory_response.rb +33 -18
- data/lib/algolia/models/monitoring/latency_response.rb +33 -18
- data/lib/algolia/models/monitoring/latency_response_metrics.rb +33 -18
- data/lib/algolia/models/monitoring/metric.rb +2 -3
- data/lib/algolia/models/monitoring/period.rb +2 -3
- data/lib/algolia/models/monitoring/probes_metric.rb +34 -19
- data/lib/algolia/models/monitoring/region.rb +2 -3
- data/lib/algolia/models/monitoring/server.rb +35 -23
- data/lib/algolia/models/monitoring/server_status.rb +2 -3
- data/lib/algolia/models/monitoring/status.rb +2 -3
- data/lib/algolia/models/monitoring/status_response.rb +33 -18
- data/lib/algolia/models/monitoring/time_inner.rb +34 -19
- data/lib/algolia/models/monitoring/type.rb +2 -3
- data/lib/algolia/models/personalization/delete_user_profile_response.rb +34 -19
- data/lib/algolia/models/personalization/error_base.rb +24 -13
- data/lib/algolia/models/personalization/event_scoring.rb +35 -20
- data/lib/algolia/models/personalization/event_type.rb +2 -3
- data/lib/algolia/models/personalization/facet_scoring.rb +34 -19
- data/lib/algolia/models/personalization/get_user_token_response.rb +35 -20
- data/lib/algolia/models/personalization/personalization_strategy_params.rb +38 -23
- data/lib/algolia/models/personalization/set_personalization_strategy_response.rb +33 -18
- data/lib/algolia/models/query-suggestions/app_id.rb +29 -17
- data/lib/algolia/models/query-suggestions/base_query_suggestions_configuration_response.rb +22 -9
- data/lib/algolia/models/query-suggestions/base_query_suggestions_configuration_with_index.rb +22 -9
- data/lib/algolia/models/query-suggestions/base_response.rb +34 -19
- data/lib/algolia/models/query-suggestions/configuration.rb +44 -26
- data/lib/algolia/models/query-suggestions/configuration_response.rb +48 -30
- data/lib/algolia/models/query-suggestions/configuration_with_index.rb +46 -28
- data/lib/algolia/models/query-suggestions/error_base.rb +24 -13
- data/lib/algolia/models/query-suggestions/facet.rb +30 -18
- data/lib/algolia/models/query-suggestions/get_config_status200_response.rb +37 -22
- data/lib/algolia/models/query-suggestions/get_log_file200_response.rb +36 -21
- data/lib/algolia/models/query-suggestions/languages.rb +33 -24
- data/lib/algolia/models/query-suggestions/log_level.rb +2 -3
- data/lib/algolia/models/query-suggestions/query_suggestions_configuration.rb +34 -16
- data/lib/algolia/models/query-suggestions/query_suggestions_configuration_response.rb +34 -16
- data/lib/algolia/models/query-suggestions/query_suggestions_configuration_with_index.rb +34 -16
- data/lib/algolia/models/query-suggestions/source_index.rb +49 -34
- data/lib/algolia/models/recommend/advanced_syntax_features.rb +2 -3
- data/lib/algolia/models/recommend/alternatives_as_exact.rb +2 -3
- data/lib/algolia/models/recommend/around_precision.rb +33 -24
- data/lib/algolia/models/recommend/around_precision_from_value_inner.rb +34 -19
- data/lib/algolia/models/recommend/around_radius.rb +33 -24
- data/lib/algolia/models/recommend/around_radius_all.rb +2 -3
- data/lib/algolia/models/recommend/auto_facet_filter.rb +34 -19
- data/lib/algolia/models/recommend/base_recommend_request.rb +42 -27
- data/lib/algolia/models/recommend/base_search_params.rb +110 -63
- data/lib/algolia/models/recommend/base_search_params_without_query.rb +106 -60
- data/lib/algolia/models/recommend/base_search_response.rb +76 -121
- data/lib/algolia/models/recommend/bought_together_query.rb +46 -31
- data/lib/algolia/models/recommend/condition.rb +35 -20
- data/lib/algolia/models/recommend/consequence.rb +39 -24
- data/lib/algolia/models/recommend/deleted_at_response.rb +34 -19
- data/lib/algolia/models/recommend/distinct.rb +33 -24
- data/lib/algolia/models/recommend/error_base.rb +24 -13
- data/lib/algolia/models/recommend/exact_on_single_word_query.rb +2 -3
- data/lib/algolia/models/recommend/exhaustive.rb +37 -22
- data/lib/algolia/models/recommend/facet_filters.rb +33 -24
- data/lib/algolia/models/recommend/facet_ordering.rb +34 -19
- data/lib/algolia/models/recommend/facets.rb +29 -17
- data/lib/algolia/models/recommend/facets_stats.rb +36 -21
- data/lib/algolia/models/recommend/fallback_params.rb +207 -118
- data/lib/algolia/models/recommend/fbt_model.rb +2 -3
- data/lib/algolia/models/recommend/frequently_bought_together.rb +34 -19
- data/lib/algolia/models/recommend/get_recommend_task_response.rb +33 -18
- data/lib/algolia/models/recommend/get_recommendations_params.rb +33 -18
- data/lib/algolia/models/recommend/get_recommendations_response.rb +33 -18
- data/lib/algolia/models/recommend/hide_consequence_object.rb +33 -18
- data/lib/algolia/models/recommend/highlight_result.rb +34 -25
- data/lib/algolia/models/recommend/highlight_result_option.rb +36 -21
- data/lib/algolia/models/recommend/ignore_plurals.rb +33 -24
- data/lib/algolia/models/recommend/index_settings_as_search_params.rb +134 -75
- data/lib/algolia/models/recommend/looking_similar.rb +35 -20
- data/lib/algolia/models/recommend/looking_similar_model.rb +2 -3
- data/lib/algolia/models/recommend/looking_similar_query.rb +47 -32
- data/lib/algolia/models/recommend/match_level.rb +2 -3
- data/lib/algolia/models/recommend/matched_geo_location.rb +35 -20
- data/lib/algolia/models/recommend/mode.rb +2 -3
- data/lib/algolia/models/recommend/numeric_filters.rb +33 -24
- data/lib/algolia/models/recommend/optional_filters.rb +33 -24
- data/lib/algolia/models/recommend/params_consequence.rb +35 -20
- data/lib/algolia/models/recommend/personalization.rb +35 -20
- data/lib/algolia/models/recommend/promote_consequence_object.rb +36 -21
- data/lib/algolia/models/recommend/query_type.rb +2 -3
- data/lib/algolia/models/recommend/ranking_info.rb +76 -48
- data/lib/algolia/models/recommend/re_ranking_apply_filter.rb +33 -24
- data/lib/algolia/models/recommend/recommend_hit.rb +32 -21
- data/lib/algolia/models/recommend/recommend_models.rb +2 -3
- data/lib/algolia/models/recommend/recommend_rule.rb +38 -23
- data/lib/algolia/models/recommend/recommend_rule_metadata.rb +33 -18
- data/lib/algolia/models/recommend/recommendations_hit.rb +33 -24
- data/lib/algolia/models/recommend/recommendations_hits.rb +33 -18
- data/lib/algolia/models/recommend/recommendations_request.rb +37 -28
- data/lib/algolia/models/recommend/recommendations_results.rb +159 -114
- data/lib/algolia/models/recommend/recommended_for_you.rb +34 -19
- data/lib/algolia/models/recommend/recommended_for_you_model.rb +2 -3
- data/lib/algolia/models/recommend/recommended_for_you_query.rb +46 -31
- data/lib/algolia/models/recommend/redirect.rb +29 -17
- data/lib/algolia/models/recommend/redirect_rule_index_metadata.rb +37 -22
- data/lib/algolia/models/recommend/redirect_rule_index_metadata_data.rb +33 -18
- data/lib/algolia/models/recommend/redirect_url.rb +33 -18
- data/lib/algolia/models/recommend/related_model.rb +2 -3
- data/lib/algolia/models/recommend/related_products.rb +35 -20
- data/lib/algolia/models/recommend/related_query.rb +47 -32
- data/lib/algolia/models/recommend/remove_stop_words.rb +33 -24
- data/lib/algolia/models/recommend/remove_words_if_no_results.rb +2 -3
- data/lib/algolia/models/recommend/rendering_content.rb +34 -19
- data/lib/algolia/models/recommend/search_pagination.rb +282 -0
- data/lib/algolia/models/recommend/search_params.rb +207 -118
- data/lib/algolia/models/recommend/search_params_object.rb +208 -119
- data/lib/algolia/models/recommend/search_params_query.rb +33 -18
- data/lib/algolia/models/recommend/search_recommend_rules_params.rb +48 -33
- data/lib/algolia/models/recommend/search_recommend_rules_response.rb +38 -23
- data/lib/algolia/models/recommend/semantic_search.rb +35 -20
- data/lib/algolia/models/recommend/snippet_result.rb +34 -25
- data/lib/algolia/models/recommend/snippet_result_option.rb +34 -19
- data/lib/algolia/models/recommend/sort_remaining_by.rb +2 -3
- data/lib/algolia/models/recommend/supported_language.rb +72 -5
- data/lib/algolia/models/recommend/tag_filters.rb +33 -24
- data/lib/algolia/models/recommend/task_status.rb +2 -3
- data/lib/algolia/models/recommend/trending_facet_hit.rb +38 -23
- data/lib/algolia/models/recommend/trending_facets.rb +37 -22
- data/lib/algolia/models/recommend/trending_facets_model.rb +2 -3
- data/lib/algolia/models/recommend/trending_facets_query.rb +49 -34
- data/lib/algolia/models/recommend/trending_items.rb +36 -21
- data/lib/algolia/models/recommend/trending_items_model.rb +2 -3
- data/lib/algolia/models/recommend/trending_items_query.rb +58 -34
- data/lib/algolia/models/recommend/typo_tolerance.rb +33 -24
- data/lib/algolia/models/recommend/typo_tolerance_enum.rb +2 -3
- data/lib/algolia/models/recommend/value.rb +31 -19
- data/lib/algolia/models/search/acl.rb +19 -5
- data/lib/algolia/models/search/action.rb +11 -4
- data/lib/algolia/models/search/add_api_key_response.rb +34 -19
- data/lib/algolia/models/search/advanced_syntax_features.rb +2 -3
- data/lib/algolia/models/search/alternatives_as_exact.rb +2 -3
- data/lib/algolia/models/search/anchoring.rb +2 -3
- data/lib/algolia/models/search/api_key.rb +46 -25
- data/lib/algolia/models/search/api_key_operation.rb +2 -3
- data/lib/algolia/models/search/around_precision.rb +33 -24
- data/lib/algolia/models/search/around_precision_from_value_inner.rb +34 -19
- data/lib/algolia/models/search/around_radius.rb +33 -24
- data/lib/algolia/models/search/around_radius_all.rb +2 -3
- data/lib/algolia/models/search/assign_user_id_params.rb +33 -18
- data/lib/algolia/models/search/attribute_to_update.rb +33 -24
- data/lib/algolia/models/search/automatic_facet_filter.rb +35 -20
- data/lib/algolia/models/search/automatic_facet_filters.rb +33 -24
- data/lib/algolia/models/search/base_get_api_key_response.rb +34 -19
- data/lib/algolia/models/search/base_index_settings.rb +71 -39
- data/lib/algolia/models/search/base_search_params.rb +110 -63
- data/lib/algolia/models/search/base_search_params_without_query.rb +106 -60
- data/lib/algolia/models/search/base_search_response.rb +76 -121
- data/lib/algolia/models/search/batch_assign_user_ids_params.rb +34 -19
- data/lib/algolia/models/search/batch_dictionary_entries_params.rb +34 -19
- data/lib/algolia/models/search/batch_dictionary_entries_request.rb +34 -19
- data/lib/algolia/models/search/batch_params.rb +33 -18
- data/lib/algolia/models/search/batch_request.rb +34 -19
- data/lib/algolia/models/search/batch_response.rb +34 -19
- data/lib/algolia/models/search/batch_write_params.rb +33 -18
- data/lib/algolia/models/{ingestion/schedule_date_utils_input.rb → search/browse_pagination.rb} +92 -45
- data/lib/algolia/models/search/browse_params.rb +33 -24
- data/lib/algolia/models/search/browse_params_object.rb +210 -120
- data/lib/algolia/models/search/browse_response.rb +158 -118
- data/lib/algolia/models/search/built_in_operation.rb +34 -19
- data/lib/algolia/models/search/built_in_operation_type.rb +2 -3
- data/lib/algolia/models/search/condition.rb +38 -23
- data/lib/algolia/models/search/consequence.rb +43 -28
- data/lib/algolia/models/search/consequence_hide.rb +33 -18
- data/lib/algolia/models/search/consequence_params.rb +213 -122
- data/lib/algolia/models/search/consequence_query.rb +33 -24
- data/lib/algolia/models/search/consequence_query_object.rb +34 -19
- data/lib/algolia/models/search/created_at_response.rb +33 -18
- data/lib/algolia/models/search/cursor.rb +29 -17
- data/lib/algolia/models/search/delete_api_key_response.rb +33 -18
- data/lib/algolia/models/search/delete_by_params.rb +50 -26
- data/lib/algolia/models/search/delete_source_response.rb +33 -18
- data/lib/algolia/models/search/deleted_at_response.rb +34 -19
- data/lib/algolia/models/search/dictionary_action.rb +2 -3
- data/lib/algolia/models/search/dictionary_entry.rb +29 -18
- data/lib/algolia/models/search/dictionary_entry_state.rb +2 -3
- data/lib/algolia/models/search/dictionary_language.rb +33 -18
- data/lib/algolia/models/search/dictionary_settings_params.rb +33 -18
- data/lib/algolia/models/search/dictionary_type.rb +2 -3
- data/lib/algolia/models/search/distinct.rb +33 -24
- data/lib/algolia/models/search/edit.rb +31 -19
- data/lib/algolia/models/search/edit_type.rb +2 -3
- data/lib/algolia/models/search/error_base.rb +24 -13
- data/lib/algolia/models/search/exact_on_single_word_query.rb +2 -3
- data/lib/algolia/models/search/exhaustive.rb +37 -22
- data/lib/algolia/models/search/facet_filters.rb +33 -24
- data/lib/algolia/models/search/facet_hits.rb +35 -20
- data/lib/algolia/models/search/facet_ordering.rb +34 -19
- data/lib/algolia/models/search/facets.rb +29 -17
- data/lib/algolia/models/search/facets_stats.rb +36 -21
- data/lib/algolia/models/search/fetched_index.rb +58 -30
- data/lib/algolia/models/search/get_api_key_response.rb +56 -30
- data/lib/algolia/models/search/get_dictionary_settings_response.rb +33 -18
- data/lib/algolia/models/search/get_logs_response.rb +33 -18
- data/lib/algolia/models/search/get_objects_params.rb +33 -18
- data/lib/algolia/models/search/get_objects_request.rb +35 -20
- data/lib/algolia/models/search/get_objects_response.rb +33 -18
- data/lib/algolia/models/search/get_task_response.rb +33 -18
- data/lib/algolia/models/search/get_top_user_ids_response.rb +33 -18
- data/lib/algolia/models/search/has_pending_mappings_response.rb +34 -19
- data/lib/algolia/models/search/highlight_result.rb +34 -25
- data/lib/algolia/models/search/highlight_result_option.rb +36 -21
- data/lib/algolia/models/search/hit.rb +24 -16
- data/lib/algolia/models/search/ignore_plurals.rb +33 -24
- data/lib/algolia/models/search/index_settings.rb +171 -97
- data/lib/algolia/models/search/index_settings_as_search_params.rb +134 -75
- data/lib/algolia/models/search/languages.rb +39 -24
- data/lib/algolia/models/search/list_api_keys_response.rb +33 -18
- data/lib/algolia/models/search/list_clusters_response.rb +33 -18
- data/lib/algolia/models/search/list_indices_response.rb +34 -19
- data/lib/algolia/models/search/list_user_ids_response.rb +33 -18
- data/lib/algolia/models/search/log.rb +70 -37
- data/lib/algolia/models/search/log_query.rb +31 -19
- data/lib/algolia/models/search/log_type.rb +2 -3
- data/lib/algolia/models/search/match_level.rb +2 -3
- data/lib/algolia/models/search/matched_geo_location.rb +35 -20
- data/lib/algolia/models/search/mode.rb +2 -3
- data/lib/algolia/models/search/multiple_batch_request.rb +35 -20
- data/lib/algolia/models/search/multiple_batch_response.rb +34 -19
- data/lib/algolia/models/search/numeric_filters.rb +33 -24
- data/lib/algolia/models/search/operation_index_params.rb +35 -20
- data/lib/algolia/models/search/operation_type.rb +2 -3
- data/lib/algolia/models/search/optional_filters.rb +33 -24
- data/lib/algolia/models/search/params.rb +32 -20
- data/lib/algolia/models/search/personalization.rb +35 -20
- data/lib/algolia/models/search/promote.rb +33 -24
- data/lib/algolia/models/search/promote_object_id.rb +34 -19
- data/lib/algolia/models/search/promote_object_ids.rb +36 -21
- data/lib/algolia/models/search/query_type.rb +2 -3
- data/lib/algolia/models/search/ranking_info.rb +76 -48
- data/lib/algolia/models/search/re_ranking_apply_filter.rb +33 -24
- data/lib/algolia/models/search/redirect.rb +29 -17
- data/lib/algolia/models/search/redirect_rule_index_metadata.rb +37 -22
- data/lib/algolia/models/search/redirect_rule_index_metadata_data.rb +33 -18
- data/lib/algolia/models/search/redirect_url.rb +33 -18
- data/lib/algolia/models/search/remove_stop_words.rb +33 -24
- data/lib/algolia/models/search/remove_user_id_response.rb +33 -18
- data/lib/algolia/models/search/remove_words_if_no_results.rb +2 -3
- data/lib/algolia/models/search/rendering_content.rb +34 -19
- data/lib/algolia/models/search/replace_all_objects_response.rb +35 -20
- data/lib/algolia/models/search/replace_source_response.rb +33 -18
- data/lib/algolia/models/search/rule.rb +37 -25
- data/lib/algolia/models/search/save_object_response.rb +35 -20
- data/lib/algolia/models/search/save_synonym_response.rb +35 -20
- data/lib/algolia/models/search/scope_type.rb +2 -3
- data/lib/algolia/models/search/search_dictionary_entries_params.rb +41 -26
- data/lib/algolia/models/search/search_dictionary_entries_response.rb +38 -23
- data/lib/algolia/models/search/search_for_facet_values_request.rb +37 -22
- data/lib/algolia/models/search/search_for_facet_values_response.rb +35 -20
- data/lib/algolia/models/search/search_for_facets.rb +218 -124
- data/lib/algolia/models/search/search_for_facets_options.rb +39 -24
- data/lib/algolia/models/search/search_for_hits.rb +214 -122
- data/lib/algolia/models/search/search_for_hits_options.rb +34 -19
- data/lib/algolia/models/search/search_hits.rb +26 -15
- data/lib/algolia/models/search/search_method_params.rb +34 -19
- data/lib/algolia/models/search/search_pagination.rb +282 -0
- data/lib/algolia/models/search/search_params.rb +33 -24
- data/lib/algolia/models/search/search_params_object.rb +208 -119
- data/lib/algolia/models/search/search_params_query.rb +33 -18
- data/lib/algolia/models/search/search_params_string.rb +33 -18
- data/lib/algolia/models/search/search_query.rb +33 -24
- data/lib/algolia/models/search/search_response.rb +154 -111
- data/lib/algolia/models/search/search_responses.rb +33 -18
- data/lib/algolia/models/search/search_result.rb +33 -24
- data/lib/algolia/models/search/search_rules_params.rb +45 -30
- data/lib/algolia/models/search/search_rules_response.rb +36 -21
- data/lib/algolia/models/search/search_strategy.rb +2 -3
- data/lib/algolia/models/search/search_synonyms_params.rb +41 -26
- data/lib/algolia/models/search/search_synonyms_response.rb +25 -14
- data/lib/algolia/models/search/search_type_default.rb +2 -3
- data/lib/algolia/models/search/search_type_facet.rb +2 -3
- data/lib/algolia/models/search/search_user_ids_params.rb +41 -26
- data/lib/algolia/models/search/search_user_ids_response.rb +42 -27
- data/lib/algolia/models/search/secured_api_key_restrictions.rb +38 -23
- data/lib/algolia/models/search/semantic_search.rb +35 -20
- data/lib/algolia/models/search/snippet_result.rb +34 -25
- data/lib/algolia/models/search/snippet_result_option.rb +34 -19
- data/lib/algolia/models/search/sort_remaining_by.rb +2 -3
- data/lib/algolia/models/search/source.rb +30 -18
- data/lib/algolia/models/search/standard_entries.rb +39 -24
- data/lib/algolia/models/search/supported_language.rb +72 -5
- data/lib/algolia/models/search/synonym_hit.rb +40 -25
- data/lib/algolia/models/search/synonym_type.rb +2 -3
- data/lib/algolia/models/search/tag_filters.rb +33 -24
- data/lib/algolia/models/search/task_status.rb +2 -3
- data/lib/algolia/models/search/time_range.rb +34 -19
- data/lib/algolia/models/search/typo_tolerance.rb +33 -24
- data/lib/algolia/models/search/typo_tolerance_enum.rb +2 -3
- data/lib/algolia/models/search/update_api_key_response.rb +34 -19
- data/lib/algolia/models/search/updated_at_response.rb +34 -19
- data/lib/algolia/models/search/updated_at_with_object_id_response.rb +35 -20
- data/lib/algolia/models/search/updated_rule_response.rb +35 -20
- data/lib/algolia/models/search/user_highlight_result.rb +34 -19
- data/lib/algolia/models/search/user_hit.rb +35 -23
- data/lib/algolia/models/search/user_id.rb +33 -21
- data/lib/algolia/models/search/value.rb +31 -19
- data/lib/algolia/models/usage/error_base.rb +24 -13
- data/lib/algolia/models/usage/get_usage200_response.rb +33 -18
- data/lib/algolia/models/usage/get_usage200_response_statistics_inner.rb +34 -19
- data/lib/algolia/models/usage/get_usage400_response.rb +33 -18
- data/lib/algolia/models/usage/get_usage400_response_error.rb +35 -20
- data/lib/algolia/models/usage/get_usage400_response_error_errors_inner.rb +36 -21
- data/lib/algolia/models/usage/granularity.rb +2 -3
- data/lib/algolia/models/usage/statistic.rb +88 -5
- data/lib/algolia/models/usage/statistic_value.rb +33 -24
- data/lib/algolia/transport/call_type.rb +1 -1
- data/lib/algolia/transport/echo_requester.rb +11 -2
- data/lib/algolia/transport/http/http_requester.rb +23 -15
- data/lib/algolia/transport/http/response.rb +8 -8
- data/lib/algolia/transport/request_options.rb +6 -4
- data/lib/algolia/transport/retry_outcome_type.rb +3 -3
- data/lib/algolia/transport/retry_strategy.rb +8 -7
- data/lib/algolia/transport/stateful_host.rb +6 -6
- data/lib/algolia/transport/transport.rb +27 -20
- data/lib/algolia/user_agent.rb +1 -1
- data/lib/algolia/version.rb +1 -1
- data/lib/algolia.rb +16 -16
- metadata +20 -13
- data/.rubocop.yml +0 -99
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
|
|
2
2
|
|
|
3
|
-
require
|
|
4
|
-
require
|
|
3
|
+
require "date"
|
|
4
|
+
require "time"
|
|
5
5
|
|
|
6
6
|
module Algolia
|
|
7
7
|
module Search
|
|
@@ -34,22 +34,27 @@ module Algolia
|
|
|
34
34
|
# Attribute type mapping.
|
|
35
35
|
def self.types_mapping
|
|
36
36
|
{
|
|
37
|
-
:hits => :
|
|
38
|
-
:query => :String,
|
|
39
|
-
:params => :String
|
|
37
|
+
:hits => :"Array<Hit>",
|
|
38
|
+
:query => :"String",
|
|
39
|
+
:params => :"String"
|
|
40
40
|
}
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
# List of attributes with nullable: true
|
|
44
44
|
def self.openapi_nullable
|
|
45
|
-
Set.new(
|
|
45
|
+
Set.new(
|
|
46
|
+
[]
|
|
47
|
+
)
|
|
46
48
|
end
|
|
47
49
|
|
|
48
50
|
# Initializes the object
|
|
49
51
|
# @param [Hash] attributes Model attributes in the form of hash
|
|
50
52
|
def initialize(attributes = {})
|
|
51
|
-
|
|
52
|
-
raise
|
|
53
|
+
if (!attributes.is_a?(Hash))
|
|
54
|
+
raise(
|
|
55
|
+
ArgumentError,
|
|
56
|
+
"The input argument (attributes) must be a hash in `Algolia::SearchHits` initialize method"
|
|
57
|
+
)
|
|
53
58
|
end
|
|
54
59
|
|
|
55
60
|
if attributes.key?(:hits)
|
|
@@ -80,8 +85,7 @@ module Algolia
|
|
|
80
85
|
# Checks equality by comparing each attribute.
|
|
81
86
|
# @param [Object] Object to be compared
|
|
82
87
|
def ==(other)
|
|
83
|
-
return true if equal?(other)
|
|
84
|
-
|
|
88
|
+
return true if self.equal?(other)
|
|
85
89
|
self.class == other.class &&
|
|
86
90
|
hits == other.hits &&
|
|
87
91
|
query == other.query &&
|
|
@@ -105,7 +109,6 @@ module Algolia
|
|
|
105
109
|
# @return [Object] Returns the model itself
|
|
106
110
|
def self.build_from_hash(attributes)
|
|
107
111
|
return nil unless attributes.is_a?(Hash)
|
|
108
|
-
|
|
109
112
|
attributes = attributes.transform_keys(&:to_sym)
|
|
110
113
|
transformed_hash = {}
|
|
111
114
|
types_mapping.each_pair do |key, type|
|
|
@@ -115,7 +118,9 @@ module Algolia
|
|
|
115
118
|
# check to ensure the input is an array given that the attribute
|
|
116
119
|
# is documented as an array but the input is not
|
|
117
120
|
if attributes[attribute_map[key]].is_a?(Array)
|
|
118
|
-
transformed_hash[key.to_sym] = attributes[attribute_map[key]].map { |v|
|
|
121
|
+
transformed_hash[key.to_sym] = attributes[attribute_map[key]].map { |v|
|
|
122
|
+
_deserialize(::Regexp.last_match(1), v)
|
|
123
|
+
}
|
|
119
124
|
end
|
|
120
125
|
elsif !attributes[attribute_map[key]].nil?
|
|
121
126
|
transformed_hash[key.to_sym] = _deserialize(type, attributes[attribute_map[key]])
|
|
@@ -149,6 +154,7 @@ module Algolia
|
|
|
149
154
|
else
|
|
150
155
|
false
|
|
151
156
|
end
|
|
157
|
+
|
|
152
158
|
when :Object
|
|
153
159
|
# generic object (usually a Hash), return directly
|
|
154
160
|
value
|
|
@@ -163,10 +169,12 @@ module Algolia
|
|
|
163
169
|
hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
|
|
164
170
|
end
|
|
165
171
|
end
|
|
166
|
-
|
|
172
|
+
# model
|
|
173
|
+
else
|
|
167
174
|
# models (e.g. Pet) or oneOf
|
|
168
175
|
klass = Algolia::Search.const_get(type)
|
|
169
|
-
klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass
|
|
176
|
+
klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass
|
|
177
|
+
.build_from_hash(value)
|
|
170
178
|
end
|
|
171
179
|
end
|
|
172
180
|
|
|
@@ -204,6 +212,7 @@ module Algolia
|
|
|
204
212
|
self.additional_properties&.each_pair do |k, v|
|
|
205
213
|
hash[k.to_sym] = _to_hash(v)
|
|
206
214
|
end
|
|
215
|
+
|
|
207
216
|
hash
|
|
208
217
|
end
|
|
209
218
|
|
|
@@ -218,12 +227,14 @@ module Algolia
|
|
|
218
227
|
{}.tap do |hash|
|
|
219
228
|
value.each { |k, v| hash[k] = _to_hash(v) }
|
|
220
229
|
end
|
|
221
|
-
elsif value.respond_to?
|
|
230
|
+
elsif value.respond_to?(:to_hash)
|
|
222
231
|
value.to_hash
|
|
223
232
|
else
|
|
224
233
|
value
|
|
225
234
|
end
|
|
226
235
|
end
|
|
236
|
+
|
|
227
237
|
end
|
|
238
|
+
|
|
228
239
|
end
|
|
229
240
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
|
|
2
2
|
|
|
3
|
-
require
|
|
4
|
-
require
|
|
3
|
+
require "date"
|
|
4
|
+
require "time"
|
|
5
5
|
|
|
6
6
|
module Algolia
|
|
7
7
|
module Search
|
|
@@ -48,32 +48,40 @@ module Algolia
|
|
|
48
48
|
# Attribute type mapping.
|
|
49
49
|
def self.types_mapping
|
|
50
50
|
{
|
|
51
|
-
:requests => :
|
|
52
|
-
:strategy => :SearchStrategy
|
|
51
|
+
:requests => :"Array<SearchQuery>",
|
|
52
|
+
:strategy => :"SearchStrategy"
|
|
53
53
|
}
|
|
54
54
|
end
|
|
55
55
|
|
|
56
56
|
# List of attributes with nullable: true
|
|
57
57
|
def self.openapi_nullable
|
|
58
|
-
Set.new(
|
|
58
|
+
Set.new(
|
|
59
|
+
[]
|
|
60
|
+
)
|
|
59
61
|
end
|
|
60
62
|
|
|
61
63
|
# Initializes the object
|
|
62
64
|
# @param [Hash] attributes Model attributes in the form of hash
|
|
63
65
|
def initialize(attributes = {})
|
|
64
|
-
|
|
65
|
-
raise
|
|
66
|
+
if (!attributes.is_a?(Hash))
|
|
67
|
+
raise(
|
|
68
|
+
ArgumentError,
|
|
69
|
+
"The input argument (attributes) must be a hash in `Algolia::SearchMethodParams` initialize method"
|
|
70
|
+
)
|
|
66
71
|
end
|
|
67
72
|
|
|
68
73
|
# check to see if the attribute exists and convert string to symbol for hash key
|
|
69
|
-
attributes = attributes.each_with_object({})
|
|
70
|
-
|
|
71
|
-
raise
|
|
72
|
-
|
|
74
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
75
|
+
if (!self.class.attribute_map.key?(k.to_sym))
|
|
76
|
+
raise(
|
|
77
|
+
ArgumentError,
|
|
78
|
+
"`#{k}` is not a valid attribute in `Algolia::SearchMethodParams`. Please check the name to make sure it's valid. List of attributes: " +
|
|
79
|
+
self.class.attribute_map.keys.inspect
|
|
80
|
+
)
|
|
73
81
|
end
|
|
74
82
|
|
|
75
83
|
h[k.to_sym] = v
|
|
76
|
-
|
|
84
|
+
}
|
|
77
85
|
|
|
78
86
|
if attributes.key?(:requests)
|
|
79
87
|
if (value = attributes[:requests]).is_a?(Array)
|
|
@@ -91,8 +99,7 @@ module Algolia
|
|
|
91
99
|
# Checks equality by comparing each attribute.
|
|
92
100
|
# @param [Object] Object to be compared
|
|
93
101
|
def ==(other)
|
|
94
|
-
return true if equal?(other)
|
|
95
|
-
|
|
102
|
+
return true if self.equal?(other)
|
|
96
103
|
self.class == other.class &&
|
|
97
104
|
requests == other.requests &&
|
|
98
105
|
strategy == other.strategy
|
|
@@ -115,7 +122,6 @@ module Algolia
|
|
|
115
122
|
# @return [Object] Returns the model itself
|
|
116
123
|
def self.build_from_hash(attributes)
|
|
117
124
|
return nil unless attributes.is_a?(Hash)
|
|
118
|
-
|
|
119
125
|
attributes = attributes.transform_keys(&:to_sym)
|
|
120
126
|
transformed_hash = {}
|
|
121
127
|
types_mapping.each_pair do |key, type|
|
|
@@ -125,12 +131,15 @@ module Algolia
|
|
|
125
131
|
# check to ensure the input is an array given that the attribute
|
|
126
132
|
# is documented as an array but the input is not
|
|
127
133
|
if attributes[attribute_map[key]].is_a?(Array)
|
|
128
|
-
transformed_hash[key.to_sym] = attributes[attribute_map[key]].map { |v|
|
|
134
|
+
transformed_hash[key.to_sym] = attributes[attribute_map[key]].map { |v|
|
|
135
|
+
_deserialize(::Regexp.last_match(1), v)
|
|
136
|
+
}
|
|
129
137
|
end
|
|
130
138
|
elsif !attributes[attribute_map[key]].nil?
|
|
131
139
|
transformed_hash[key.to_sym] = _deserialize(type, attributes[attribute_map[key]])
|
|
132
140
|
end
|
|
133
141
|
end
|
|
142
|
+
|
|
134
143
|
new(transformed_hash)
|
|
135
144
|
end
|
|
136
145
|
|
|
@@ -156,6 +165,7 @@ module Algolia
|
|
|
156
165
|
else
|
|
157
166
|
false
|
|
158
167
|
end
|
|
168
|
+
|
|
159
169
|
when :Object
|
|
160
170
|
# generic object (usually a Hash), return directly
|
|
161
171
|
value
|
|
@@ -170,10 +180,12 @@ module Algolia
|
|
|
170
180
|
hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
|
|
171
181
|
end
|
|
172
182
|
end
|
|
173
|
-
|
|
183
|
+
# model
|
|
184
|
+
else
|
|
174
185
|
# models (e.g. Pet) or oneOf
|
|
175
186
|
klass = Algolia::Search.const_get(type)
|
|
176
|
-
klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass
|
|
187
|
+
klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass
|
|
188
|
+
.build_from_hash(value)
|
|
177
189
|
end
|
|
178
190
|
end
|
|
179
191
|
|
|
@@ -206,6 +218,7 @@ module Algolia
|
|
|
206
218
|
|
|
207
219
|
hash[param] = _to_hash(value)
|
|
208
220
|
end
|
|
221
|
+
|
|
209
222
|
hash
|
|
210
223
|
end
|
|
211
224
|
|
|
@@ -220,12 +233,14 @@ module Algolia
|
|
|
220
233
|
{}.tap do |hash|
|
|
221
234
|
value.each { |k, v| hash[k] = _to_hash(v) }
|
|
222
235
|
end
|
|
223
|
-
elsif value.respond_to?
|
|
236
|
+
elsif value.respond_to?(:to_hash)
|
|
224
237
|
value.to_hash
|
|
225
238
|
else
|
|
226
239
|
value
|
|
227
240
|
end
|
|
228
241
|
end
|
|
242
|
+
|
|
229
243
|
end
|
|
244
|
+
|
|
230
245
|
end
|
|
231
246
|
end
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
# Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
|
|
2
|
+
|
|
3
|
+
require "date"
|
|
4
|
+
require "time"
|
|
5
|
+
|
|
6
|
+
module Algolia
|
|
7
|
+
module Search
|
|
8
|
+
class SearchPagination
|
|
9
|
+
# Page of search results to retrieve.
|
|
10
|
+
attr_accessor :page
|
|
11
|
+
|
|
12
|
+
# Number of results (hits).
|
|
13
|
+
attr_accessor :nb_hits
|
|
14
|
+
|
|
15
|
+
# Number of pages of results.
|
|
16
|
+
attr_accessor :nb_pages
|
|
17
|
+
|
|
18
|
+
# Number of hits per page.
|
|
19
|
+
attr_accessor :hits_per_page
|
|
20
|
+
|
|
21
|
+
# Attribute mapping from ruby-style variable name to JSON key.
|
|
22
|
+
def self.attribute_map
|
|
23
|
+
{
|
|
24
|
+
:page => :page,
|
|
25
|
+
:nb_hits => :nbHits,
|
|
26
|
+
:nb_pages => :nbPages,
|
|
27
|
+
:hits_per_page => :hitsPerPage
|
|
28
|
+
}
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Returns all the JSON keys this model knows about
|
|
32
|
+
def self.acceptable_attributes
|
|
33
|
+
attribute_map.values
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Attribute type mapping.
|
|
37
|
+
def self.types_mapping
|
|
38
|
+
{
|
|
39
|
+
:page => :"Integer",
|
|
40
|
+
:nb_hits => :"Integer",
|
|
41
|
+
:nb_pages => :"Integer",
|
|
42
|
+
:hits_per_page => :"Integer"
|
|
43
|
+
}
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# List of attributes with nullable: true
|
|
47
|
+
def self.openapi_nullable
|
|
48
|
+
Set.new(
|
|
49
|
+
[]
|
|
50
|
+
)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# Initializes the object
|
|
54
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
55
|
+
def initialize(attributes = {})
|
|
56
|
+
if (!attributes.is_a?(Hash))
|
|
57
|
+
raise(
|
|
58
|
+
ArgumentError,
|
|
59
|
+
"The input argument (attributes) must be a hash in `Algolia::SearchPagination` initialize method"
|
|
60
|
+
)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
|
64
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
65
|
+
if (!self.class.attribute_map.key?(k.to_sym))
|
|
66
|
+
raise(
|
|
67
|
+
ArgumentError,
|
|
68
|
+
"`#{k}` is not a valid attribute in `Algolia::SearchPagination`. Please check the name to make sure it's valid. List of attributes: " +
|
|
69
|
+
self.class.attribute_map.keys.inspect
|
|
70
|
+
)
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
h[k.to_sym] = v
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if attributes.key?(:page)
|
|
77
|
+
self.page = attributes[:page]
|
|
78
|
+
else
|
|
79
|
+
self.page = nil
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
if attributes.key?(:nb_hits)
|
|
83
|
+
self.nb_hits = attributes[:nb_hits]
|
|
84
|
+
else
|
|
85
|
+
self.nb_hits = nil
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
if attributes.key?(:nb_pages)
|
|
89
|
+
self.nb_pages = attributes[:nb_pages]
|
|
90
|
+
else
|
|
91
|
+
self.nb_pages = nil
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
if attributes.key?(:hits_per_page)
|
|
95
|
+
self.hits_per_page = attributes[:hits_per_page]
|
|
96
|
+
else
|
|
97
|
+
self.hits_per_page = nil
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# Custom attribute writer method with validation
|
|
102
|
+
# @param [Object] page Value to be assigned
|
|
103
|
+
def page=(page)
|
|
104
|
+
if page.nil?
|
|
105
|
+
raise ArgumentError, "page cannot be nil"
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
if page < 0
|
|
109
|
+
raise ArgumentError, "invalid value for \"page\", must be greater than or equal to 0."
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
@page = page
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# Custom attribute writer method with validation
|
|
116
|
+
# @param [Object] hits_per_page Value to be assigned
|
|
117
|
+
def hits_per_page=(hits_per_page)
|
|
118
|
+
if hits_per_page.nil?
|
|
119
|
+
raise ArgumentError, "hits_per_page cannot be nil"
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
if hits_per_page > 1000
|
|
123
|
+
raise ArgumentError, "invalid value for \"hits_per_page\", must be smaller than or equal to 1000."
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
if hits_per_page < 1
|
|
127
|
+
raise ArgumentError, "invalid value for \"hits_per_page\", must be greater than or equal to 1."
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
@hits_per_page = hits_per_page
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
# Checks equality by comparing each attribute.
|
|
134
|
+
# @param [Object] Object to be compared
|
|
135
|
+
def ==(other)
|
|
136
|
+
return true if self.equal?(other)
|
|
137
|
+
self.class == other.class &&
|
|
138
|
+
page == other.page &&
|
|
139
|
+
nb_hits == other.nb_hits &&
|
|
140
|
+
nb_pages == other.nb_pages &&
|
|
141
|
+
hits_per_page == other.hits_per_page
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
# @see the `==` method
|
|
145
|
+
# @param [Object] Object to be compared
|
|
146
|
+
def eql?(other)
|
|
147
|
+
self == other
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
# Calculates hash code according to all attributes.
|
|
151
|
+
# @return [Integer] Hash code
|
|
152
|
+
def hash
|
|
153
|
+
[page, nb_hits, nb_pages, hits_per_page].hash
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
# Builds the object from hash
|
|
157
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
158
|
+
# @return [Object] Returns the model itself
|
|
159
|
+
def self.build_from_hash(attributes)
|
|
160
|
+
return nil unless attributes.is_a?(Hash)
|
|
161
|
+
attributes = attributes.transform_keys(&:to_sym)
|
|
162
|
+
transformed_hash = {}
|
|
163
|
+
types_mapping.each_pair do |key, type|
|
|
164
|
+
if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
|
|
165
|
+
transformed_hash[key.to_sym] = nil
|
|
166
|
+
elsif type =~ /\AArray<(.*)>/i
|
|
167
|
+
# check to ensure the input is an array given that the attribute
|
|
168
|
+
# is documented as an array but the input is not
|
|
169
|
+
if attributes[attribute_map[key]].is_a?(Array)
|
|
170
|
+
transformed_hash[key.to_sym] = attributes[attribute_map[key]].map { |v|
|
|
171
|
+
_deserialize(::Regexp.last_match(1), v)
|
|
172
|
+
}
|
|
173
|
+
end
|
|
174
|
+
elsif !attributes[attribute_map[key]].nil?
|
|
175
|
+
transformed_hash[key.to_sym] = _deserialize(type, attributes[attribute_map[key]])
|
|
176
|
+
end
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
new(transformed_hash)
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
# Deserializes the data based on type
|
|
183
|
+
# @param string type Data type
|
|
184
|
+
# @param string value Value to be deserialized
|
|
185
|
+
# @return [Object] Deserialized data
|
|
186
|
+
def self._deserialize(type, value)
|
|
187
|
+
case type.to_sym
|
|
188
|
+
when :Time
|
|
189
|
+
Time.parse(value)
|
|
190
|
+
when :Date
|
|
191
|
+
Date.parse(value)
|
|
192
|
+
when :String
|
|
193
|
+
value.to_s
|
|
194
|
+
when :Integer
|
|
195
|
+
value.to_i
|
|
196
|
+
when :Float
|
|
197
|
+
value.to_f
|
|
198
|
+
when :Boolean
|
|
199
|
+
if value.to_s =~ /\A(true|t|yes|y|1)\z/i
|
|
200
|
+
true
|
|
201
|
+
else
|
|
202
|
+
false
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
when :Object
|
|
206
|
+
# generic object (usually a Hash), return directly
|
|
207
|
+
value
|
|
208
|
+
when /\AArray<(?<inner_type>.+)>\z/
|
|
209
|
+
inner_type = Regexp.last_match[:inner_type]
|
|
210
|
+
value.map { |v| _deserialize(inner_type, v) }
|
|
211
|
+
when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
|
|
212
|
+
k_type = Regexp.last_match[:k_type]
|
|
213
|
+
v_type = Regexp.last_match[:v_type]
|
|
214
|
+
{}.tap do |hash|
|
|
215
|
+
value.each do |k, v|
|
|
216
|
+
hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
|
|
217
|
+
end
|
|
218
|
+
end
|
|
219
|
+
# model
|
|
220
|
+
else
|
|
221
|
+
# models (e.g. Pet) or oneOf
|
|
222
|
+
klass = Algolia::Search.const_get(type)
|
|
223
|
+
klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass
|
|
224
|
+
.build_from_hash(value)
|
|
225
|
+
end
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
# Returns the string representation of the object
|
|
229
|
+
# @return [String] String presentation of the object
|
|
230
|
+
def to_s
|
|
231
|
+
to_hash.to_s
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
# to_body is an alias to to_hash (backward compatibility)
|
|
235
|
+
# @return [Hash] Returns the object in the form of hash
|
|
236
|
+
def to_body
|
|
237
|
+
to_hash
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
def to_json(*_args)
|
|
241
|
+
to_hash.to_json
|
|
242
|
+
end
|
|
243
|
+
|
|
244
|
+
# Returns the object in the form of hash
|
|
245
|
+
# @return [Hash] Returns the object in the form of hash
|
|
246
|
+
def to_hash
|
|
247
|
+
hash = {}
|
|
248
|
+
self.class.attribute_map.each_pair do |attr, param|
|
|
249
|
+
value = send(attr)
|
|
250
|
+
if value.nil?
|
|
251
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
|
252
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
253
|
+
end
|
|
254
|
+
|
|
255
|
+
hash[param] = _to_hash(value)
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
hash
|
|
259
|
+
end
|
|
260
|
+
|
|
261
|
+
# Outputs non-array value in the form of hash
|
|
262
|
+
# For object, use to_hash. Otherwise, just return the value
|
|
263
|
+
# @param [Object] value Any valid value
|
|
264
|
+
# @return [Hash] Returns the value in the form of hash
|
|
265
|
+
def _to_hash(value)
|
|
266
|
+
if value.is_a?(Array)
|
|
267
|
+
value.compact.map { |v| _to_hash(v) }
|
|
268
|
+
elsif value.is_a?(Hash)
|
|
269
|
+
{}.tap do |hash|
|
|
270
|
+
value.each { |k, v| hash[k] = _to_hash(v) }
|
|
271
|
+
end
|
|
272
|
+
elsif value.respond_to?(:to_hash)
|
|
273
|
+
value.to_hash
|
|
274
|
+
else
|
|
275
|
+
value
|
|
276
|
+
end
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
end
|
|
280
|
+
|
|
281
|
+
end
|
|
282
|
+
end
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
# Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
|
|
2
2
|
|
|
3
|
-
require
|
|
4
|
-
require
|
|
3
|
+
require "date"
|
|
4
|
+
require "time"
|
|
5
5
|
|
|
6
6
|
module Algolia
|
|
7
7
|
module Search
|
|
8
8
|
module SearchParams
|
|
9
9
|
class << self
|
|
10
|
-
|
|
10
|
+
# List of class defined in oneOf (OpenAPI v3)
|
|
11
11
|
def openapi_one_of
|
|
12
12
|
[
|
|
13
|
-
:SearchParamsObject,
|
|
14
|
-
:SearchParamsString
|
|
13
|
+
:"SearchParamsObject",
|
|
14
|
+
:"SearchParamsString"
|
|
15
15
|
]
|
|
16
16
|
end
|
|
17
17
|
|
|
@@ -27,11 +27,14 @@ module Algolia
|
|
|
27
27
|
# - TODO: scalar values are de facto behaving as if they were nullable.
|
|
28
28
|
# - TODO: logging when debugging is set.
|
|
29
29
|
openapi_one_of.each do |klass|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
begin
|
|
31
|
+
# "nullable: true"
|
|
32
|
+
next if klass == :AnyType
|
|
33
|
+
typed_data = find_and_cast_into_type(klass, data)
|
|
34
|
+
return typed_data if typed_data
|
|
35
|
+
# rescue all errors so we keep iterating even if the current item lookup raises
|
|
36
|
+
rescue
|
|
37
|
+
end
|
|
35
38
|
end
|
|
36
39
|
|
|
37
40
|
openapi_one_of.include?(:AnyType) ? data : nil
|
|
@@ -41,44 +44,48 @@ module Algolia
|
|
|
41
44
|
|
|
42
45
|
SchemaMismatchError = Class.new(StandardError)
|
|
43
46
|
|
|
44
|
-
#
|
|
47
|
+
# Note: 'File' is missing here because in the regular case we get the data _after_ a call to JSON.parse.
|
|
45
48
|
def find_and_cast_into_type(klass, data)
|
|
46
49
|
return if data.nil?
|
|
47
50
|
|
|
48
51
|
case klass.to_s
|
|
49
|
-
when
|
|
52
|
+
when "Boolean"
|
|
50
53
|
return data if data.instance_of?(TrueClass) || data.instance_of?(FalseClass)
|
|
51
|
-
when
|
|
54
|
+
when "Float"
|
|
52
55
|
return data if data.instance_of?(Float)
|
|
53
|
-
when
|
|
56
|
+
when "Integer"
|
|
54
57
|
return data if data.instance_of?(Integer)
|
|
55
|
-
when
|
|
58
|
+
when "Time"
|
|
56
59
|
return Time.parse(data)
|
|
57
|
-
when
|
|
60
|
+
when "Date"
|
|
58
61
|
return Date.parse(data)
|
|
59
|
-
when
|
|
62
|
+
when "String"
|
|
60
63
|
return data if data.instance_of?(String)
|
|
61
|
-
|
|
64
|
+
# "type: object"
|
|
65
|
+
when "Object"
|
|
62
66
|
return data if data.instance_of?(Hash)
|
|
63
|
-
|
|
67
|
+
# "type: array"
|
|
68
|
+
when /\AArray<(?<sub_type>.+)>\z/
|
|
64
69
|
if data.instance_of?(Array)
|
|
65
70
|
sub_type = Regexp.last_match[:sub_type]
|
|
66
71
|
return data.map { |item| find_and_cast_into_type(sub_type, item) }
|
|
67
72
|
end
|
|
68
|
-
|
|
73
|
+
# "type: object" with "additionalProperties: { ... }"
|
|
74
|
+
when /\AHash<String, (?<sub_type>.+)>\z/
|
|
69
75
|
if data.instance_of?(Hash) && data.keys.all? { |k| k.instance_of?(Symbol) || k.instance_of?(String) }
|
|
70
76
|
sub_type = Regexp.last_match[:sub_type]
|
|
71
77
|
return data.each_with_object({}) { |(k, v), hsh| hsh[k] = find_and_cast_into_type(sub_type, v) }
|
|
72
78
|
end
|
|
73
|
-
|
|
79
|
+
# model
|
|
80
|
+
else
|
|
74
81
|
const = Algolia::Search.const_get(klass)
|
|
75
82
|
if const
|
|
76
|
-
|
|
83
|
+
# nested oneOf model
|
|
84
|
+
if const.respond_to?(:openapi_one_of)
|
|
77
85
|
model = const.build(data)
|
|
78
86
|
else
|
|
79
87
|
# raise if data contains keys that are not known to the model
|
|
80
88
|
raise unless (data.keys - const.acceptable_attributes).empty?
|
|
81
|
-
|
|
82
89
|
model = const.build_from_hash(data)
|
|
83
90
|
end
|
|
84
91
|
|
|
@@ -86,11 +93,13 @@ module Algolia
|
|
|
86
93
|
end
|
|
87
94
|
end
|
|
88
95
|
|
|
89
|
-
|
|
96
|
+
# if no match by now, raise
|
|
97
|
+
raise
|
|
90
98
|
rescue
|
|
91
99
|
raise SchemaMismatchError, "#{data} doesn't match the #{klass} type"
|
|
92
100
|
end
|
|
93
101
|
end
|
|
94
102
|
end
|
|
103
|
+
|
|
95
104
|
end
|
|
96
105
|
end
|