algolia 2.3.3 → 3.0.0.alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (602) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -89
  3. data/Gemfile +1 -14
  4. data/Gemfile.lock +64 -0
  5. data/README.md +4 -6
  6. data/Rakefile +0 -39
  7. data/algolia.gemspec +24 -39
  8. data/lib/algolia/api/abtesting_client.rb +418 -0
  9. data/lib/algolia/api/analytics_client.rb +1294 -0
  10. data/lib/algolia/api/ingestion_client.rb +1659 -0
  11. data/lib/algolia/api/insights_client.rb +252 -0
  12. data/lib/algolia/api/monitoring_client.rb +555 -0
  13. data/lib/algolia/api/personalization_client.rb +365 -0
  14. data/lib/algolia/api/query_suggestions_client.rb +491 -0
  15. data/lib/algolia/api/recommend_client.rb +460 -0
  16. data/lib/algolia/api/search_client.rb +2723 -0
  17. data/lib/algolia/api_client.rb +153 -0
  18. data/lib/algolia/api_error.rb +48 -0
  19. data/lib/algolia/configuration.rb +41 -0
  20. data/lib/algolia/logger_helper.rb +1 -1
  21. data/lib/algolia/models/abtesting/ab_test.rb +332 -0
  22. data/lib/algolia/models/abtesting/ab_test_response.rb +219 -0
  23. data/lib/algolia/models/abtesting/ab_tests_variant.rb +217 -0
  24. data/lib/algolia/models/abtesting/ab_tests_variant_search_params.rb +236 -0
  25. data/lib/algolia/models/abtesting/add_ab_tests_request.rb +239 -0
  26. data/lib/algolia/models/abtesting/add_ab_tests_variant.rb +96 -0
  27. data/lib/algolia/models/abtesting/currencies_value.rb +223 -0
  28. data/lib/algolia/models/abtesting/custom_search_params.rb +195 -0
  29. data/lib/algolia/models/abtesting/error_base.rb +196 -0
  30. data/lib/algolia/models/abtesting/filter_effects.rb +202 -0
  31. data/lib/algolia/models/abtesting/filter_effects_empty_search.rb +204 -0
  32. data/lib/algolia/models/abtesting/filter_effects_outliers.rb +204 -0
  33. data/lib/algolia/models/abtesting/list_ab_tests_response.rb +221 -0
  34. data/lib/algolia/models/abtesting/variant.rb +399 -0
  35. data/lib/algolia/models/analytics/average_click_event.rb +219 -0
  36. data/lib/algolia/models/analytics/click_position.rb +209 -0
  37. data/lib/algolia/models/analytics/click_through_rate_event.rb +249 -0
  38. data/lib/algolia/models/analytics/conversion_rate_event.rb +249 -0
  39. data/lib/algolia/models/analytics/direction.rb +33 -0
  40. data/lib/algolia/models/analytics/error_base.rb +196 -0
  41. data/lib/algolia/models/analytics/get_average_click_position_response.rb +221 -0
  42. data/lib/algolia/models/analytics/get_click_positions_response.rb +215 -0
  43. data/lib/algolia/models/analytics/get_click_through_rate_response.rb +251 -0
  44. data/lib/algolia/models/analytics/get_conversation_rate_response.rb +251 -0
  45. data/lib/algolia/models/analytics/get_no_click_rate_response.rb +251 -0
  46. data/lib/algolia/models/analytics/get_no_results_rate_response.rb +251 -0
  47. data/lib/algolia/models/analytics/get_searches_count_response.rb +209 -0
  48. data/lib/algolia/models/analytics/get_searches_no_clicks_response.rb +197 -0
  49. data/lib/algolia/models/analytics/get_searches_no_results_response.rb +197 -0
  50. data/lib/algolia/models/analytics/get_status_response.rb +195 -0
  51. data/lib/algolia/models/analytics/get_top_countries_response.rb +197 -0
  52. data/lib/algolia/models/analytics/get_top_filter_attribute.rb +207 -0
  53. data/lib/algolia/models/analytics/get_top_filter_attributes_response.rb +197 -0
  54. data/lib/algolia/models/analytics/get_top_filter_for_attribute.rb +231 -0
  55. data/lib/algolia/models/analytics/get_top_filter_for_attribute_response.rb +197 -0
  56. data/lib/algolia/models/analytics/get_top_filters_no_results_response.rb +197 -0
  57. data/lib/algolia/models/analytics/get_top_filters_no_results_value.rb +219 -0
  58. data/lib/algolia/models/analytics/get_top_filters_no_results_values.rb +209 -0
  59. data/lib/algolia/models/analytics/get_top_hits_response.rb +96 -0
  60. data/lib/algolia/models/analytics/get_top_searches_response.rb +96 -0
  61. data/lib/algolia/models/analytics/get_users_count_response.rb +209 -0
  62. data/lib/algolia/models/analytics/no_click_rate_event.rb +249 -0
  63. data/lib/algolia/models/analytics/no_results_rate_event.rb +249 -0
  64. data/lib/algolia/models/analytics/order_by.rb +35 -0
  65. data/lib/algolia/models/analytics/search_event.rb +207 -0
  66. data/lib/algolia/models/analytics/search_no_click_event.rb +219 -0
  67. data/lib/algolia/models/analytics/search_no_result_event.rb +219 -0
  68. data/lib/algolia/models/analytics/top_country.rb +207 -0
  69. data/lib/algolia/models/analytics/top_hit.rb +207 -0
  70. data/lib/algolia/models/analytics/top_hit_with_analytics.rb +285 -0
  71. data/lib/algolia/models/analytics/top_hits_response.rb +197 -0
  72. data/lib/algolia/models/analytics/top_hits_response_with_analytics.rb +197 -0
  73. data/lib/algolia/models/analytics/top_search.rb +219 -0
  74. data/lib/algolia/models/analytics/top_search_with_analytics.rb +309 -0
  75. data/lib/algolia/models/analytics/top_searches_response.rb +197 -0
  76. data/lib/algolia/models/analytics/top_searches_response_with_analytics.rb +197 -0
  77. data/lib/algolia/models/analytics/user_with_date.rb +207 -0
  78. data/lib/algolia/models/ingestion/action_type.rb +34 -0
  79. data/lib/algolia/models/ingestion/auth_algolia.rb +207 -0
  80. data/lib/algolia/models/ingestion/auth_algolia_partial.rb +203 -0
  81. data/lib/algolia/models/ingestion/auth_api_key.rb +195 -0
  82. data/lib/algolia/models/ingestion/auth_api_key_partial.rb +193 -0
  83. data/lib/algolia/models/ingestion/auth_basic.rb +206 -0
  84. data/lib/algolia/models/ingestion/auth_basic_partial.rb +202 -0
  85. data/lib/algolia/models/ingestion/auth_google_service_account.rb +208 -0
  86. data/lib/algolia/models/ingestion/auth_google_service_account_partial.rb +204 -0
  87. data/lib/algolia/models/ingestion/auth_input.rb +99 -0
  88. data/lib/algolia/models/ingestion/auth_input_partial.rb +99 -0
  89. data/lib/algolia/models/ingestion/auth_o_auth.rb +220 -0
  90. data/lib/algolia/models/ingestion/auth_o_auth_partial.rb +214 -0
  91. data/lib/algolia/models/ingestion/authentication.rb +283 -0
  92. data/lib/algolia/models/ingestion/authentication_create.rb +249 -0
  93. data/lib/algolia/models/ingestion/authentication_create_response.rb +220 -0
  94. data/lib/algolia/models/ingestion/authentication_search.rb +197 -0
  95. data/lib/algolia/models/ingestion/authentication_sort_keys.rb +36 -0
  96. data/lib/algolia/models/ingestion/authentication_type.rb +36 -0
  97. data/lib/algolia/models/ingestion/authentication_update.rb +243 -0
  98. data/lib/algolia/models/ingestion/authentication_update_response.rb +220 -0
  99. data/lib/algolia/models/ingestion/big_commerce_channel.rb +207 -0
  100. data/lib/algolia/models/ingestion/big_commerce_metafield.rb +207 -0
  101. data/lib/algolia/models/ingestion/big_query_data_type.rb +33 -0
  102. data/lib/algolia/models/ingestion/delete_response.rb +195 -0
  103. data/lib/algolia/models/ingestion/destination.rb +283 -0
  104. data/lib/algolia/models/ingestion/destination_create.rb +250 -0
  105. data/lib/algolia/models/ingestion/destination_create_response.rb +220 -0
  106. data/lib/algolia/models/ingestion/destination_index_name.rb +238 -0
  107. data/lib/algolia/models/ingestion/destination_index_prefix.rb +195 -0
  108. data/lib/algolia/models/ingestion/destination_input.rb +96 -0
  109. data/lib/algolia/models/ingestion/destination_search.rb +197 -0
  110. data/lib/algolia/models/ingestion/destination_sort_keys.rb +35 -0
  111. data/lib/algolia/models/ingestion/destination_type.rb +34 -0
  112. data/lib/algolia/models/ingestion/destination_update.rb +243 -0
  113. data/lib/algolia/models/ingestion/destination_update_response.rb +220 -0
  114. data/lib/algolia/models/ingestion/docker_image_type.rb +34 -0
  115. data/lib/algolia/models/ingestion/docker_registry.rb +33 -0
  116. data/lib/algolia/models/ingestion/docker_source_discover.rb +207 -0
  117. data/lib/algolia/models/ingestion/docker_source_streams.rb +196 -0
  118. data/lib/algolia/models/ingestion/error_base.rb +196 -0
  119. data/lib/algolia/models/ingestion/event.rb +311 -0
  120. data/lib/algolia/models/ingestion/event_sort_keys.rb +34 -0
  121. data/lib/algolia/models/ingestion/event_status.rb +37 -0
  122. data/lib/algolia/models/ingestion/event_type.rb +35 -0
  123. data/lib/algolia/models/ingestion/list_authentications_response.rb +207 -0
  124. data/lib/algolia/models/ingestion/list_destinations_response.rb +207 -0
  125. data/lib/algolia/models/ingestion/list_events_response.rb +218 -0
  126. data/lib/algolia/models/ingestion/list_sources_response.rb +207 -0
  127. data/lib/algolia/models/ingestion/list_tasks_response.rb +208 -0
  128. data/lib/algolia/models/ingestion/mapping_type_csv.rb +36 -0
  129. data/lib/algolia/models/ingestion/method_type.rb +33 -0
  130. data/lib/algolia/models/ingestion/on_demand_date_utils_input.rb +208 -0
  131. data/lib/algolia/models/ingestion/on_demand_trigger.rb +227 -0
  132. data/lib/algolia/models/ingestion/on_demand_trigger_input.rb +217 -0
  133. data/lib/algolia/models/ingestion/on_demand_trigger_type.rb +32 -0
  134. data/lib/algolia/models/ingestion/order_keys.rb +33 -0
  135. data/lib/algolia/models/ingestion/pagination.rb +227 -0
  136. data/lib/algolia/models/ingestion/platform.rb +33 -0
  137. data/lib/algolia/models/ingestion/platform_none.rb +32 -0
  138. data/lib/algolia/models/ingestion/platform_with_none.rb +96 -0
  139. data/lib/algolia/models/ingestion/record_type.rb +33 -0
  140. data/lib/algolia/models/ingestion/run.rb +359 -0
  141. data/lib/algolia/models/ingestion/run_list_response.rb +218 -0
  142. data/lib/algolia/models/ingestion/run_outcome.rb +34 -0
  143. data/lib/algolia/models/ingestion/run_progress.rb +201 -0
  144. data/lib/algolia/models/ingestion/run_reason_code.rb +38 -0
  145. data/lib/algolia/models/ingestion/run_response.rb +208 -0
  146. data/lib/algolia/models/ingestion/run_sort_keys.rb +34 -0
  147. data/lib/algolia/models/ingestion/run_status.rb +36 -0
  148. data/lib/algolia/models/ingestion/run_type.rb +34 -0
  149. data/lib/algolia/models/ingestion/schedule_date_utils_input.rb +214 -0
  150. data/lib/algolia/models/ingestion/schedule_trigger.rb +251 -0
  151. data/lib/algolia/models/ingestion/schedule_trigger_input.rb +229 -0
  152. data/lib/algolia/models/ingestion/schedule_trigger_type.rb +32 -0
  153. data/lib/algolia/models/ingestion/source.rb +282 -0
  154. data/lib/algolia/models/ingestion/source_big_commerce.rb +235 -0
  155. data/lib/algolia/models/ingestion/source_big_query.rb +278 -0
  156. data/lib/algolia/models/ingestion/source_commercetools.rb +238 -0
  157. data/lib/algolia/models/ingestion/source_create.rb +248 -0
  158. data/lib/algolia/models/ingestion/source_create_response.rb +218 -0
  159. data/lib/algolia/models/ingestion/source_csv.rb +276 -0
  160. data/lib/algolia/models/ingestion/source_docker.rb +261 -0
  161. data/lib/algolia/models/ingestion/source_input.rb +100 -0
  162. data/lib/algolia/models/ingestion/source_json.rb +236 -0
  163. data/lib/algolia/models/ingestion/source_search.rb +196 -0
  164. data/lib/algolia/models/ingestion/source_sort_keys.rb +35 -0
  165. data/lib/algolia/models/ingestion/source_type.rb +37 -0
  166. data/lib/algolia/models/ingestion/source_update.rb +211 -0
  167. data/lib/algolia/models/ingestion/source_update_commercetools.rb +207 -0
  168. data/lib/algolia/models/ingestion/source_update_docker.rb +246 -0
  169. data/lib/algolia/models/ingestion/source_update_input.rb +99 -0
  170. data/lib/algolia/models/ingestion/source_update_response.rb +218 -0
  171. data/lib/algolia/models/ingestion/subscription_trigger.rb +217 -0
  172. data/lib/algolia/models/ingestion/subscription_trigger_type.rb +32 -0
  173. data/lib/algolia/models/ingestion/task.rb +334 -0
  174. data/lib/algolia/models/ingestion/task_create.rb +299 -0
  175. data/lib/algolia/models/ingestion/task_create_response.rb +208 -0
  176. data/lib/algolia/models/ingestion/task_create_trigger.rb +97 -0
  177. data/lib/algolia/models/ingestion/task_input.rb +96 -0
  178. data/lib/algolia/models/ingestion/task_search.rb +196 -0
  179. data/lib/algolia/models/ingestion/task_sort_keys.rb +36 -0
  180. data/lib/algolia/models/ingestion/task_update.rb +250 -0
  181. data/lib/algolia/models/ingestion/task_update_response.rb +208 -0
  182. data/lib/algolia/models/ingestion/trigger.rb +97 -0
  183. data/lib/algolia/models/ingestion/trigger_type.rb +34 -0
  184. data/lib/algolia/models/ingestion/trigger_update_input.rb +196 -0
  185. data/lib/algolia/models/ingestion/window.rb +208 -0
  186. data/lib/algolia/models/insights/add_to_cart_event.rb +32 -0
  187. data/lib/algolia/models/insights/added_to_cart_object_ids.rb +384 -0
  188. data/lib/algolia/models/insights/added_to_cart_object_ids_after_search.rb +419 -0
  189. data/lib/algolia/models/insights/click_event.rb +32 -0
  190. data/lib/algolia/models/insights/clicked_filters.rb +351 -0
  191. data/lib/algolia/models/insights/clicked_object_ids.rb +341 -0
  192. data/lib/algolia/models/insights/clicked_object_ids_after_search.rb +418 -0
  193. data/lib/algolia/models/insights/conversion_event.rb +32 -0
  194. data/lib/algolia/models/insights/converted_filters.rb +350 -0
  195. data/lib/algolia/models/insights/converted_object_ids.rb +351 -0
  196. data/lib/algolia/models/insights/converted_object_ids_after_search.rb +386 -0
  197. data/lib/algolia/models/insights/discount.rb +97 -0
  198. data/lib/algolia/models/insights/error_base.rb +196 -0
  199. data/lib/algolia/models/insights/events_items.rb +106 -0
  200. data/lib/algolia/models/insights/events_response.rb +204 -0
  201. data/lib/algolia/models/insights/insights_events.rb +215 -0
  202. data/lib/algolia/models/insights/object_data.rb +211 -0
  203. data/lib/algolia/models/insights/object_data_after_search.rb +221 -0
  204. data/lib/algolia/models/insights/price.rb +97 -0
  205. data/lib/algolia/models/insights/purchase_event.rb +32 -0
  206. data/lib/algolia/models/insights/purchased_object_ids.rb +384 -0
  207. data/lib/algolia/models/insights/purchased_object_ids_after_search.rb +419 -0
  208. data/lib/algolia/models/insights/view_event.rb +32 -0
  209. data/lib/algolia/models/insights/viewed_filters.rb +351 -0
  210. data/lib/algolia/models/insights/viewed_object_ids.rb +351 -0
  211. data/lib/algolia/models/monitoring/error_base.rb +196 -0
  212. data/lib/algolia/models/monitoring/get_inventory403_response.rb +192 -0
  213. data/lib/algolia/models/monitoring/incident.rb +225 -0
  214. data/lib/algolia/models/monitoring/incidents_inner.rb +202 -0
  215. data/lib/algolia/models/monitoring/incidents_response.rb +194 -0
  216. data/lib/algolia/models/monitoring/indexing_time_response.rb +192 -0
  217. data/lib/algolia/models/monitoring/indexing_time_response_metrics.rb +194 -0
  218. data/lib/algolia/models/monitoring/infrastructure_response.rb +192 -0
  219. data/lib/algolia/models/monitoring/infrastructure_response_metrics.rb +243 -0
  220. data/lib/algolia/models/monitoring/inventory_response.rb +194 -0
  221. data/lib/algolia/models/monitoring/latency_response.rb +192 -0
  222. data/lib/algolia/models/monitoring/latency_response_metrics.rb +194 -0
  223. data/lib/algolia/models/monitoring/metric.rb +37 -0
  224. data/lib/algolia/models/monitoring/period.rb +36 -0
  225. data/lib/algolia/models/monitoring/probes_metric.rb +203 -0
  226. data/lib/algolia/models/monitoring/region.rb +46 -0
  227. data/lib/algolia/models/monitoring/server.rb +272 -0
  228. data/lib/algolia/models/monitoring/server_status.rb +32 -0
  229. data/lib/algolia/models/monitoring/status.rb +35 -0
  230. data/lib/algolia/models/monitoring/status_response.rb +194 -0
  231. data/lib/algolia/models/monitoring/time_inner.rb +203 -0
  232. data/lib/algolia/models/monitoring/type.rb +32 -0
  233. data/lib/algolia/models/personalization/delete_user_profile_response.rb +207 -0
  234. data/lib/algolia/models/personalization/error_base.rb +196 -0
  235. data/lib/algolia/models/personalization/event_scoring.rb +219 -0
  236. data/lib/algolia/models/personalization/facet_scoring.rb +207 -0
  237. data/lib/algolia/models/personalization/get_user_token_response.rb +219 -0
  238. data/lib/algolia/models/personalization/personalization_strategy_params.rb +223 -0
  239. data/lib/algolia/models/personalization/set_personalization_strategy_response.rb +195 -0
  240. data/lib/algolia/models/query-suggestions/base_query_suggestions_configuration_response.rb +223 -0
  241. data/lib/algolia/models/query-suggestions/base_query_suggestions_configuration_with_index.rb +195 -0
  242. data/lib/algolia/models/query-suggestions/base_response.rb +203 -0
  243. data/lib/algolia/models/query-suggestions/error_base.rb +196 -0
  244. data/lib/algolia/models/query-suggestions/facet.rb +204 -0
  245. data/lib/algolia/models/query-suggestions/get_config_status200_response.rb +233 -0
  246. data/lib/algolia/models/query-suggestions/get_log_file200_response.rb +244 -0
  247. data/lib/algolia/models/query-suggestions/languages.rb +97 -0
  248. data/lib/algolia/models/query-suggestions/log_level.rb +34 -0
  249. data/lib/algolia/models/query-suggestions/query_suggestions_configuration.rb +255 -0
  250. data/lib/algolia/models/query-suggestions/query_suggestions_configuration_response.rb +315 -0
  251. data/lib/algolia/models/query-suggestions/query_suggestions_configuration_with_index.rb +275 -0
  252. data/lib/algolia/models/query-suggestions/source_index.rb +305 -0
  253. data/lib/algolia/models/recommend/advanced_syntax_features.rb +33 -0
  254. data/lib/algolia/models/recommend/alternatives_as_exact.rb +34 -0
  255. data/lib/algolia/models/recommend/anchoring.rb +35 -0
  256. data/lib/algolia/models/recommend/around_precision.rb +97 -0
  257. data/lib/algolia/models/recommend/around_precision_from_value_inner.rb +201 -0
  258. data/lib/algolia/models/recommend/around_radius.rb +97 -0
  259. data/lib/algolia/models/recommend/around_radius_all.rb +32 -0
  260. data/lib/algolia/models/recommend/automatic_facet_filter.rb +216 -0
  261. data/lib/algolia/models/recommend/automatic_facet_filters.rb +97 -0
  262. data/lib/algolia/models/recommend/base_recommend_request.rb +233 -0
  263. data/lib/algolia/models/recommend/base_recommendations_query.rb +246 -0
  264. data/lib/algolia/models/recommend/base_recommended_for_you_query.rb +234 -0
  265. data/lib/algolia/models/recommend/base_recommended_for_you_query_parameters.rb +195 -0
  266. data/lib/algolia/models/recommend/base_search_params.rb +564 -0
  267. data/lib/algolia/models/recommend/base_search_params_without_query.rb +546 -0
  268. data/lib/algolia/models/recommend/base_search_response.rb +517 -0
  269. data/lib/algolia/models/recommend/base_trending_facets_query.rb +226 -0
  270. data/lib/algolia/models/recommend/base_trending_items_query.rb +252 -0
  271. data/lib/algolia/models/recommend/condition.rb +244 -0
  272. data/lib/algolia/models/recommend/consequence.rb +239 -0
  273. data/lib/algolia/models/recommend/consequence_hide.rb +196 -0
  274. data/lib/algolia/models/recommend/consequence_params.rb +1121 -0
  275. data/lib/algolia/models/recommend/consequence_query.rb +97 -0
  276. data/lib/algolia/models/recommend/consequence_query_object.rb +207 -0
  277. data/lib/algolia/models/recommend/deleted_at_response.rb +208 -0
  278. data/lib/algolia/models/recommend/distinct.rb +97 -0
  279. data/lib/algolia/models/recommend/edit.rb +234 -0
  280. data/lib/algolia/models/recommend/edit_type.rb +33 -0
  281. data/lib/algolia/models/recommend/error_base.rb +196 -0
  282. data/lib/algolia/models/recommend/exact_on_single_word_query.rb +34 -0
  283. data/lib/algolia/models/recommend/exhaustive.rb +234 -0
  284. data/lib/algolia/models/recommend/facet_filters.rb +97 -0
  285. data/lib/algolia/models/recommend/facet_ordering.rb +205 -0
  286. data/lib/algolia/models/recommend/facets.rb +196 -0
  287. data/lib/algolia/models/recommend/facets_stats.rb +223 -0
  288. data/lib/algolia/models/recommend/get_recommend_task_response.rb +216 -0
  289. data/lib/algolia/models/recommend/get_recommendations_params.rb +198 -0
  290. data/lib/algolia/models/recommend/get_recommendations_response.rb +194 -0
  291. data/lib/algolia/models/recommend/highlight_result.rb +96 -0
  292. data/lib/algolia/models/recommend/highlight_result_option.rb +253 -0
  293. data/lib/algolia/models/recommend/ignore_plurals.rb +97 -0
  294. data/lib/algolia/models/recommend/index_settings_as_search_params.rb +723 -0
  295. data/lib/algolia/models/recommend/match_level.rb +34 -0
  296. data/lib/algolia/models/recommend/matched_geo_location.rb +213 -0
  297. data/lib/algolia/models/recommend/mixed_search_filters.rb +96 -0
  298. data/lib/algolia/models/recommend/mode.rb +33 -0
  299. data/lib/algolia/models/recommend/numeric_filters.rb +97 -0
  300. data/lib/algolia/models/recommend/optional_filters.rb +97 -0
  301. data/lib/algolia/models/recommend/params.rb +220 -0
  302. data/lib/algolia/models/recommend/personalization.rb +213 -0
  303. data/lib/algolia/models/recommend/promote.rb +96 -0
  304. data/lib/algolia/models/recommend/promote_object_id.rb +208 -0
  305. data/lib/algolia/models/recommend/promote_object_ids.rb +210 -0
  306. data/lib/algolia/models/recommend/query_type.rb +34 -0
  307. data/lib/algolia/models/recommend/ranking_info.rb +328 -0
  308. data/lib/algolia/models/recommend/re_ranking_apply_filter.rb +97 -0
  309. data/lib/algolia/models/recommend/recommend_hit.rb +271 -0
  310. data/lib/algolia/models/recommend/recommend_models.rb +35 -0
  311. data/lib/algolia/models/recommend/recommendation_models.rb +33 -0
  312. data/lib/algolia/models/recommend/recommendations_hit.rb +96 -0
  313. data/lib/algolia/models/recommend/recommendations_hits.rb +216 -0
  314. data/lib/algolia/models/recommend/recommendations_query.rb +304 -0
  315. data/lib/algolia/models/recommend/recommendations_request.rb +98 -0
  316. data/lib/algolia/models/recommend/recommendations_results.rb +553 -0
  317. data/lib/algolia/models/recommend/recommended_for_you_model.rb +32 -0
  318. data/lib/algolia/models/recommend/recommended_for_you_query.rb +292 -0
  319. data/lib/algolia/models/recommend/recommended_for_you_query_parameters.rb +1105 -0
  320. data/lib/algolia/models/recommend/redirect.rb +195 -0
  321. data/lib/algolia/models/recommend/redirect_rule_index_metadata.rb +242 -0
  322. data/lib/algolia/models/recommend/redirect_rule_index_metadata_data.rb +195 -0
  323. data/lib/algolia/models/recommend/remove_stop_words.rb +97 -0
  324. data/lib/algolia/models/recommend/remove_words_if_no_results.rb +35 -0
  325. data/lib/algolia/models/recommend/rendering_content.rb +193 -0
  326. data/lib/algolia/models/recommend/rule_response.rb +246 -0
  327. data/lib/algolia/models/recommend/rule_response_metadata.rb +193 -0
  328. data/lib/algolia/models/recommend/search_params_object.rb +1103 -0
  329. data/lib/algolia/models/recommend/search_params_query.rb +193 -0
  330. data/lib/algolia/models/recommend/search_recommend_rules_params.rb +268 -0
  331. data/lib/algolia/models/recommend/search_recommend_rules_response.rb +233 -0
  332. data/lib/algolia/models/recommend/semantic_search.rb +198 -0
  333. data/lib/algolia/models/recommend/snippet_result.rb +96 -0
  334. data/lib/algolia/models/recommend/snippet_result_option.rb +229 -0
  335. data/lib/algolia/models/recommend/sort_remaining_by.rb +34 -0
  336. data/lib/algolia/models/recommend/tag_filters.rb +97 -0
  337. data/lib/algolia/models/recommend/task_status.rb +33 -0
  338. data/lib/algolia/models/recommend/trending_facet_hit.rb +238 -0
  339. data/lib/algolia/models/recommend/trending_facets_model.rb +32 -0
  340. data/lib/algolia/models/recommend/trending_facets_query.rb +284 -0
  341. data/lib/algolia/models/recommend/trending_items_model.rb +32 -0
  342. data/lib/algolia/models/recommend/trending_items_query.rb +310 -0
  343. data/lib/algolia/models/recommend/typo_tolerance.rb +97 -0
  344. data/lib/algolia/models/recommend/typo_tolerance_enum.rb +33 -0
  345. data/lib/algolia/models/recommend/value.rb +226 -0
  346. data/lib/algolia/models/search/acl.rb +47 -0
  347. data/lib/algolia/models/search/action.rb +38 -0
  348. data/lib/algolia/models/search/add_api_key_response.rb +207 -0
  349. data/lib/algolia/models/search/advanced_syntax_features.rb +33 -0
  350. data/lib/algolia/models/search/alternatives_as_exact.rb +34 -0
  351. data/lib/algolia/models/search/anchoring.rb +35 -0
  352. data/lib/algolia/models/search/api_key.rb +272 -0
  353. data/lib/algolia/models/search/around_precision.rb +97 -0
  354. data/lib/algolia/models/search/around_precision_from_value_inner.rb +201 -0
  355. data/lib/algolia/models/search/around_radius.rb +97 -0
  356. data/lib/algolia/models/search/around_radius_all.rb +32 -0
  357. data/lib/algolia/models/search/assign_user_id_params.rb +196 -0
  358. data/lib/algolia/models/search/attribute_to_update.rb +96 -0
  359. data/lib/algolia/models/search/automatic_facet_filter.rb +216 -0
  360. data/lib/algolia/models/search/automatic_facet_filters.rb +97 -0
  361. data/lib/algolia/models/search/base_get_api_key_response.rb +205 -0
  362. data/lib/algolia/models/search/base_index_settings.rb +366 -0
  363. data/lib/algolia/models/search/base_search_params.rb +564 -0
  364. data/lib/algolia/models/search/base_search_params_without_query.rb +546 -0
  365. data/lib/algolia/models/search/base_search_response.rb +517 -0
  366. data/lib/algolia/models/search/batch_assign_user_ids_params.rb +210 -0
  367. data/lib/algolia/models/search/batch_dictionary_entries_params.rb +208 -0
  368. data/lib/algolia/models/search/batch_dictionary_entries_request.rb +227 -0
  369. data/lib/algolia/models/search/batch_params.rb +197 -0
  370. data/lib/algolia/models/search/batch_request.rb +228 -0
  371. data/lib/algolia/models/search/batch_response.rb +209 -0
  372. data/lib/algolia/models/search/batch_write_params.rb +197 -0
  373. data/lib/algolia/models/search/browse_params.rb +96 -0
  374. data/lib/algolia/models/search/browse_params_object.rb +1113 -0
  375. data/lib/algolia/models/search/browse_response.rb +568 -0
  376. data/lib/algolia/models/search/built_in_operation.rb +229 -0
  377. data/lib/algolia/models/search/built_in_operation_type.rb +38 -0
  378. data/lib/algolia/models/search/condition.rb +244 -0
  379. data/lib/algolia/models/search/consequence.rb +239 -0
  380. data/lib/algolia/models/search/consequence_hide.rb +196 -0
  381. data/lib/algolia/models/search/consequence_params.rb +1121 -0
  382. data/lib/algolia/models/search/consequence_query.rb +97 -0
  383. data/lib/algolia/models/search/consequence_query_object.rb +207 -0
  384. data/lib/algolia/models/search/created_at_response.rb +196 -0
  385. data/lib/algolia/models/search/cursor.rb +193 -0
  386. data/lib/algolia/models/search/delete_api_key_response.rb +195 -0
  387. data/lib/algolia/models/search/delete_by_params.rb +263 -0
  388. data/lib/algolia/models/search/delete_source_response.rb +195 -0
  389. data/lib/algolia/models/search/deleted_at_response.rb +208 -0
  390. data/lib/algolia/models/search/dictionary_action.rb +33 -0
  391. data/lib/algolia/models/search/dictionary_entry.rb +276 -0
  392. data/lib/algolia/models/search/dictionary_entry_state.rb +33 -0
  393. data/lib/algolia/models/search/dictionary_language.rb +194 -0
  394. data/lib/algolia/models/search/dictionary_settings_params.rb +195 -0
  395. data/lib/algolia/models/search/dictionary_type.rb +34 -0
  396. data/lib/algolia/models/search/distinct.rb +97 -0
  397. data/lib/algolia/models/search/edit.rb +234 -0
  398. data/lib/algolia/models/search/edit_type.rb +33 -0
  399. data/lib/algolia/models/search/error_base.rb +196 -0
  400. data/lib/algolia/models/search/exact_on_single_word_query.rb +34 -0
  401. data/lib/algolia/models/search/exhaustive.rb +234 -0
  402. data/lib/algolia/models/search/facet_filters.rb +97 -0
  403. data/lib/algolia/models/search/facet_hits.rb +219 -0
  404. data/lib/algolia/models/search/facet_ordering.rb +205 -0
  405. data/lib/algolia/models/search/facets.rb +196 -0
  406. data/lib/algolia/models/search/facets_stats.rb +223 -0
  407. data/lib/algolia/models/search/fetched_index.rb +313 -0
  408. data/lib/algolia/models/search/get_api_key_response.rb +301 -0
  409. data/lib/algolia/models/search/get_dictionary_settings_response.rb +194 -0
  410. data/lib/algolia/models/search/get_logs_response.rb +196 -0
  411. data/lib/algolia/models/search/get_objects_params.rb +197 -0
  412. data/lib/algolia/models/search/get_objects_request.rb +220 -0
  413. data/lib/algolia/models/search/get_objects_response.rb +197 -0
  414. data/lib/algolia/models/search/get_task_response.rb +216 -0
  415. data/lib/algolia/models/search/get_top_user_ids_response.rb +198 -0
  416. data/lib/algolia/models/search/has_pending_mappings_response.rb +207 -0
  417. data/lib/algolia/models/search/highlight_result.rb +96 -0
  418. data/lib/algolia/models/search/highlight_result_option.rb +253 -0
  419. data/lib/algolia/models/search/hit.rb +241 -0
  420. data/lib/algolia/models/search/ignore_plurals.rb +97 -0
  421. data/lib/algolia/models/search/index_settings.rb +912 -0
  422. data/lib/algolia/models/search/index_settings_as_search_params.rb +723 -0
  423. data/lib/algolia/models/search/languages.rb +221 -0
  424. data/lib/algolia/models/search/list_api_keys_response.rb +197 -0
  425. data/lib/algolia/models/search/list_clusters_response.rb +198 -0
  426. data/lib/algolia/models/search/list_indices_response.rb +207 -0
  427. data/lib/algolia/models/search/list_user_ids_response.rb +198 -0
  428. data/lib/algolia/models/search/log.rb +358 -0
  429. data/lib/algolia/models/search/log_query.rb +213 -0
  430. data/lib/algolia/models/search/log_type.rb +35 -0
  431. data/lib/algolia/models/search/match_level.rb +34 -0
  432. data/lib/algolia/models/search/matched_geo_location.rb +213 -0
  433. data/lib/algolia/models/search/mixed_search_filters.rb +96 -0
  434. data/lib/algolia/models/search/mode.rb +33 -0
  435. data/lib/algolia/models/search/multiple_batch_request.rb +240 -0
  436. data/lib/algolia/models/search/multiple_batch_response.rb +211 -0
  437. data/lib/algolia/models/search/numeric_filters.rb +97 -0
  438. data/lib/algolia/models/search/operation_index_params.rb +240 -0
  439. data/lib/algolia/models/search/operation_type.rb +33 -0
  440. data/lib/algolia/models/search/optional_filters.rb +97 -0
  441. data/lib/algolia/models/search/params.rb +220 -0
  442. data/lib/algolia/models/search/personalization.rb +213 -0
  443. data/lib/algolia/models/search/promote.rb +96 -0
  444. data/lib/algolia/models/search/promote_object_id.rb +208 -0
  445. data/lib/algolia/models/search/promote_object_ids.rb +210 -0
  446. data/lib/algolia/models/search/query_type.rb +34 -0
  447. data/lib/algolia/models/search/ranking_info.rb +328 -0
  448. data/lib/algolia/models/search/re_ranking_apply_filter.rb +97 -0
  449. data/lib/algolia/models/search/redirect.rb +195 -0
  450. data/lib/algolia/models/search/redirect_rule_index_metadata.rb +242 -0
  451. data/lib/algolia/models/search/redirect_rule_index_metadata_data.rb +195 -0
  452. data/lib/algolia/models/search/remove_stop_words.rb +97 -0
  453. data/lib/algolia/models/search/remove_user_id_response.rb +195 -0
  454. data/lib/algolia/models/search/remove_words_if_no_results.rb +35 -0
  455. data/lib/algolia/models/search/rendering_content.rb +193 -0
  456. data/lib/algolia/models/search/replace_source_response.rb +195 -0
  457. data/lib/algolia/models/search/rule.rb +249 -0
  458. data/lib/algolia/models/search/save_object_response.rb +217 -0
  459. data/lib/algolia/models/search/save_synonym_response.rb +219 -0
  460. data/lib/algolia/models/search/scope_type.rb +34 -0
  461. data/lib/algolia/models/search/search_dictionary_entries_params.rb +244 -0
  462. data/lib/algolia/models/search/search_for_facet_values_request.rb +227 -0
  463. data/lib/algolia/models/search/search_for_facet_values_response.rb +218 -0
  464. data/lib/algolia/models/search/search_for_facets.rb +1158 -0
  465. data/lib/algolia/models/search/search_for_facets_options.rb +274 -0
  466. data/lib/algolia/models/search/search_for_hits.rb +1134 -0
  467. data/lib/algolia/models/search/search_for_hits_options.rb +226 -0
  468. data/lib/algolia/models/search/search_hits.rb +223 -0
  469. data/lib/algolia/models/search/search_method_params.rb +227 -0
  470. data/lib/algolia/models/search/search_params.rb +96 -0
  471. data/lib/algolia/models/search/search_params_object.rb +1103 -0
  472. data/lib/algolia/models/search/search_params_query.rb +193 -0
  473. data/lib/algolia/models/search/search_params_string.rb +193 -0
  474. data/lib/algolia/models/search/search_query.rb +96 -0
  475. data/lib/algolia/models/search/search_response.rb +560 -0
  476. data/lib/algolia/models/search/search_responses.rb +196 -0
  477. data/lib/algolia/models/search/search_result.rb +96 -0
  478. data/lib/algolia/models/search/search_rules_params.rb +311 -0
  479. data/lib/algolia/models/search/search_rules_response.rb +233 -0
  480. data/lib/algolia/models/search/search_strategy.rb +33 -0
  481. data/lib/algolia/models/search/search_synonyms_params.rb +193 -0
  482. data/lib/algolia/models/search/search_synonyms_response.rb +212 -0
  483. data/lib/algolia/models/search/search_type_default.rb +32 -0
  484. data/lib/algolia/models/search/search_type_facet.rb +32 -0
  485. data/lib/algolia/models/search/search_user_ids_params.rb +244 -0
  486. data/lib/algolia/models/search/search_user_ids_response.rb +264 -0
  487. data/lib/algolia/models/search/semantic_search.rb +198 -0
  488. data/lib/algolia/models/search/snippet_result.rb +96 -0
  489. data/lib/algolia/models/search/snippet_result_option.rb +229 -0
  490. data/lib/algolia/models/search/sort_remaining_by.rb +34 -0
  491. data/lib/algolia/models/search/source.rb +206 -0
  492. data/lib/algolia/models/search/standard_entries.rb +224 -0
  493. data/lib/algolia/models/search/synonym_hit.rb +295 -0
  494. data/lib/algolia/models/search/synonym_type.rb +36 -0
  495. data/lib/algolia/models/search/tag_filters.rb +97 -0
  496. data/lib/algolia/models/search/task_status.rb +33 -0
  497. data/lib/algolia/models/search/time_range.rb +207 -0
  498. data/lib/algolia/models/search/typo_tolerance.rb +97 -0
  499. data/lib/algolia/models/search/typo_tolerance_enum.rb +33 -0
  500. data/lib/algolia/models/search/update_api_key_response.rb +207 -0
  501. data/lib/algolia/models/search/updated_at_response.rb +208 -0
  502. data/lib/algolia/models/search/updated_at_with_object_id_response.rb +214 -0
  503. data/lib/algolia/models/search/updated_rule_response.rb +219 -0
  504. data/lib/algolia/models/search/user_highlight_result.rb +205 -0
  505. data/lib/algolia/models/search/user_hit.rb +269 -0
  506. data/lib/algolia/models/search/user_id.rb +247 -0
  507. data/lib/algolia/models/search/value.rb +226 -0
  508. data/lib/algolia/transport/echo_requester.rb +10 -0
  509. data/lib/algolia/{http → transport/http}/http_requester.rb +24 -19
  510. data/lib/algolia/{http → transport/http}/response.rb +11 -1
  511. data/lib/algolia/transport/request_options.rb +19 -31
  512. data/lib/algolia/transport/retry_strategy.rb +5 -8
  513. data/lib/algolia/transport/stateful_host.rb +1 -2
  514. data/lib/algolia/transport/transport.rb +33 -73
  515. data/lib/algolia/user_agent.rb +4 -14
  516. data/lib/algolia/version.rb +3 -1
  517. data/lib/algolia.rb +23 -40
  518. metadata +523 -218
  519. data/.circleci/config.yml +0 -155
  520. data/.dockerignore +0 -38
  521. data/.github/ISSUE_TEMPLATE.md +0 -20
  522. data/.github/PULL_REQUEST_TEMPLATE.md +0 -22
  523. data/.gitignore +0 -40
  524. data/.rubocop.yml +0 -189
  525. data/.rubocop_todo.yml +0 -14
  526. data/CODE_OF_CONDUCT.md +0 -74
  527. data/CONTRIBUTING.MD +0 -184
  528. data/DOCKER_README.MD +0 -89
  529. data/Dockerfile +0 -7
  530. data/LICENSE +0 -21
  531. data/SECURITY.md +0 -3
  532. data/Steepfile +0 -6
  533. data/bin/console +0 -21
  534. data/bin/setup +0 -8
  535. data/lib/algolia/account_client.rb +0 -65
  536. data/lib/algolia/analytics_client.rb +0 -105
  537. data/lib/algolia/config/analytics_config.rb +0 -20
  538. data/lib/algolia/config/base_config.rb +0 -43
  539. data/lib/algolia/config/insights_config.rb +0 -20
  540. data/lib/algolia/config/personalization_config.rb +0 -20
  541. data/lib/algolia/config/recommend_config.rb +0 -6
  542. data/lib/algolia/config/recommendation_config.rb +0 -7
  543. data/lib/algolia/config/search_config.rb +0 -40
  544. data/lib/algolia/defaults.rb +0 -35
  545. data/lib/algolia/helpers.rb +0 -134
  546. data/lib/algolia/insights_client.rb +0 -238
  547. data/lib/algolia/iterators/base_iterator.rb +0 -19
  548. data/lib/algolia/iterators/object_iterator.rb +0 -28
  549. data/lib/algolia/iterators/paginator_iterator.rb +0 -46
  550. data/lib/algolia/iterators/rule_iterator.rb +0 -9
  551. data/lib/algolia/iterators/synonym_iterator.rb +0 -9
  552. data/lib/algolia/personalization_client.rb +0 -60
  553. data/lib/algolia/recommend_client.rb +0 -134
  554. data/lib/algolia/recommendation_client.rb +0 -7
  555. data/lib/algolia/responses/add_api_key_response.rb +0 -38
  556. data/lib/algolia/responses/base_response.rb +0 -9
  557. data/lib/algolia/responses/delete_api_key_response.rb +0 -40
  558. data/lib/algolia/responses/dictionary_response.rb +0 -33
  559. data/lib/algolia/responses/indexing_response.rb +0 -28
  560. data/lib/algolia/responses/multiple_batch_indexing_response.rb +0 -29
  561. data/lib/algolia/responses/multiple_response.rb +0 -45
  562. data/lib/algolia/responses/restore_api_key_response.rb +0 -36
  563. data/lib/algolia/responses/update_api_key_response.rb +0 -39
  564. data/lib/algolia/search_client.rb +0 -791
  565. data/lib/algolia/search_index.rb +0 -1059
  566. data/renovate.json +0 -5
  567. data/sig/config/algolia_config.rbs +0 -24
  568. data/sig/config/analytics_config.rbs +0 -11
  569. data/sig/config/insights_config.rbs +0 -11
  570. data/sig/config/recommendation_config.rbs +0 -11
  571. data/sig/config/search_config.rbs +0 -11
  572. data/sig/enums/call_type.rbs +0 -5
  573. data/sig/helpers.rbs +0 -12
  574. data/sig/http/http_requester.rbs +0 -17
  575. data/sig/http/response.rbs +0 -14
  576. data/sig/interfaces/_connection.rbs +0 -16
  577. data/sig/iterators/base_iterator.rbs +0 -15
  578. data/sig/iterators/object_iterator.rbs +0 -6
  579. data/sig/iterators/paginator_iterator.rbs +0 -8
  580. data/sig/iterators/rule_iterator.rbs +0 -5
  581. data/sig/iterators/synonym_iterator.rbs +0 -5
  582. data/sig/transport/request_options.rbs +0 -33
  583. data/sig/transport/stateful_host.rbs +0 -21
  584. data/test/algolia/integration/account_client_test.rb +0 -47
  585. data/test/algolia/integration/analytics_client_test.rb +0 -117
  586. data/test/algolia/integration/base_test.rb +0 -9
  587. data/test/algolia/integration/insights_client_test.rb +0 -80
  588. data/test/algolia/integration/mocks/mock_requester.rb +0 -47
  589. data/test/algolia/integration/personalization_client_test.rb +0 -30
  590. data/test/algolia/integration/recommend_client_test.rb +0 -70
  591. data/test/algolia/integration/recommendation_client_test.rb +0 -30
  592. data/test/algolia/integration/search_client_test.rb +0 -465
  593. data/test/algolia/integration/search_index_test.rb +0 -729
  594. data/test/algolia/unit/algolia_config_test.rb +0 -16
  595. data/test/algolia/unit/helpers_test.rb +0 -88
  596. data/test/algolia/unit/http_requester_test.rb +0 -27
  597. data/test/algolia/unit/retry_strategy_test.rb +0 -139
  598. data/test/algolia/unit/user_agent_test.rb +0 -16
  599. data/test/test_helper.rb +0 -121
  600. data/upgrade_guide.md +0 -603
  601. /data/lib/algolia/{enums → transport}/call_type.rb +0 -0
  602. /data/lib/algolia/{enums → transport}/retry_outcome_type.rb +0 -0
data/renovate.json DELETED
@@ -1,5 +0,0 @@
1
- {
2
- "extends": [
3
- "config:base"
4
- ]
5
- }
@@ -1,24 +0,0 @@
1
- module Algolia
2
- class BaseConfig
3
- attr_accessor app_id: String
4
-
5
- attr_accessor api_key: String
6
-
7
- attr_accessor headers: Hash[String, String]
8
-
9
- attr_accessor batch_size: Integer
10
-
11
- attr_accessor read_timeout: Integer
12
-
13
- attr_accessor write_timeout: Integer
14
-
15
- attr_accessor connect_timeout: Integer
16
-
17
- attr_accessor compression_type: String
18
-
19
- attr_accessor symbolize_keys: bool
20
-
21
- def initialize: (?::Hash[Symbol, String|[String]] opts) -> void
22
- def set_extra_header: (Symbol|String key, String value) -> void
23
- end
24
- end
@@ -1,11 +0,0 @@
1
- module Algolia
2
- module Analytics
3
- class Config < BaseConfig
4
- attr_accessor region: String
5
-
6
- attr_accessor default_hosts: [String]
7
-
8
- def initialize: (?::Hash[Symbol, String] opts) -> void
9
- end
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- module Algolia
2
- module Insights
3
- class Config < BaseConfig
4
- attr_accessor region: String
5
-
6
- attr_accessor default_hosts: [String]
7
-
8
- def initialize: (?::Hash[Symbol, String] opts) -> void
9
- end
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- module Algolia
2
- module Recommendation
3
- class Config < BaseConfig
4
- attr_accessor region: String
5
-
6
- attr_accessor default_hosts: [String]
7
-
8
- def initialize: (?::Hash[Symbol, String] opts) -> void
9
- end
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- module Algolia
2
- module Search
3
- class Config < BaseConfig
4
- include CallType
5
-
6
- attr_accessor default_hosts: Array[untyped]
7
-
8
- def initialize: (?::Hash[Symbol, String|[String]] opts) -> void
9
- end
10
- end
11
- end
@@ -1,5 +0,0 @@
1
- module CallType
2
- READ: ::Integer
3
-
4
- WRITE: ::Integer
5
- end
data/sig/helpers.rbs DELETED
@@ -1,12 +0,0 @@
1
- module Helpers
2
-
3
- def to_json: (String|Hash[Symbol, String] body) -> String
4
- def symbolize_hash: (Hash[Symbol|String, untyped] hash) -> Hash[Symbol, untyped]
5
- def handle_params: (Hash[Symbol, String] params) -> String
6
- def to_query_string: (Hash[Symbol, String] params) -> String
7
- def json_to_hash: (String json, bool symbolize_keys) -> Hash[Symbol, String]
8
- def get_option: ([Symbol|String, String] hash, String key) -> (String | [String])
9
- def path_encode: (String path, *String args) -> String
10
- def deserialize_settings: (Hash[Symbol|String, String] data) -> Hash[Symbol, String]
11
- def self.included: (self base) -> self
12
- end
@@ -1,17 +0,0 @@
1
- module Algolia
2
- module Http
3
- class HttpRequester
4
- attr_accessor adapter: String
5
-
6
- attr_accessor logger: Logger
7
-
8
- def initialize: (String adapter, Logger logger) -> void
9
-
10
- def send_request: (Algolia::Transport::StatefulHost host, Symbol method, String path, Hash[Symbol|String, untyped] body, Hash[String|Symbol, String|bool] headers, Integer timeout, Integer connect_timeout) -> Algolia::Http::Response
11
-
12
- def connection: (Algolia::Transport::StatefulHost host) -> _Connection
13
-
14
- def build_url: (Algolia::Transport::StatefulHost host) -> String
15
- end
16
- end
17
- end
@@ -1,14 +0,0 @@
1
- module Algolia
2
- module Http
3
- class Response
4
- attr_reader status: String
5
- attr_reader body: String
6
- attr_reader error: String
7
- attr_reader headers: String
8
- attr_reader has_timed_out: bool
9
- attr_reader network_failure: bool
10
-
11
- def initialize: (?::Hash[Symbol, String|bool] opts) -> untyped
12
- end
13
- end
14
- end
@@ -1,16 +0,0 @@
1
- interface _Connection
2
-
3
- def options: () -> _ConnectionOptions
4
-
5
- def run_request: (Symbol method, String path, Hash[Symbol, String|[String]] body, Hash[String, String] headers) -> Http::Response
6
-
7
- end
8
-
9
- interface _ConnectionOptions
10
-
11
- def timeout: () -> Integer
12
- def timeout=: (Integer timeout) -> Integer
13
- def open_timeout: () -> Integer
14
- def open_timeout=: (Integer timeout) -> Integer
15
-
16
- end
@@ -1,15 +0,0 @@
1
- module Algolia
2
- class BaseIterator
3
- include Helpers
4
- #TODO: double check Enumerable
5
- include Enumerable[Hash[Symbol, String|[String]], void]
6
-
7
- # TODO: add Transporter
8
- attr_reader transporter: untyped
9
- attr_reader index_name: String
10
- attr_reader opts: Hash[Symbol, String|[String]]
11
-
12
- # TODO: add Transporter
13
- def initialize: (untyped transporter, String index_name, Hash[Symbol, String|[String]] opts) -> void
14
- end
15
- end
@@ -1,6 +0,0 @@
1
- module Algolia
2
- class ObjectIterator < BaseIterator
3
-
4
- def each: () { (Hash[Symbol, String|[String]]) -> void } -> Hash[Symbol, String|[String]]
5
- end
6
- end
@@ -1,8 +0,0 @@
1
- module Algolia
2
- class PaginatorIterator < BaseIterator
3
- # TODO: type transporter
4
- def initialize: (untyped transporter, String index_name, Hash[Symbol, String|[String]] opts) -> bool
5
- def each: () { (Hash[Symbol, String|[String]]) -> void } -> Hash[Symbol, String|[String]]
6
- def get_endpoint: () -> String
7
- end
8
- end
@@ -1,5 +0,0 @@
1
- module Algolia
2
- class RuleIterator < PaginatorIterator
3
- def get_endpoint: () -> String
4
- end
5
- end
@@ -1,5 +0,0 @@
1
- module Algolia
2
- class SynonymIterator < PaginatorIterator
3
- def get_endpoint: () -> String
4
- end
5
- end
@@ -1,33 +0,0 @@
1
- module Algolia
2
- module Transport
3
- class RequestOptions
4
- attr_accessor headers: Hash[Symbol|String, String]
5
-
6
- attr_accessor params: Hash[Symbol|String, untyped]
7
-
8
- attr_accessor data: Hash[Symbol|String, untyped]
9
-
10
- attr_accessor timeout: Integer
11
-
12
- attr_accessor connect_timeout: Integer
13
-
14
- attr_accessor compression_type: String
15
-
16
- def initialize: (Algolia::Search::Config config) -> void
17
-
18
- def create: (?::Hash[Symbol|String, untyped] opts) -> void
19
-
20
- def add_headers: (?::Hash[Symbol|String, untyped] opts) -> void
21
-
22
- def add_params: (?::Hash[Symbol|String, untyped] opts) -> void
23
-
24
- def add_timeout: (?::Hash[Symbol|String, untyped] opts) -> void
25
-
26
- def add_connect_timeout: (?::Hash[Symbol|String, untyped] opts) -> void
27
-
28
- def add_compression_type: (?::Hash[Symbol|String, untyped] opts) -> void
29
-
30
- def add_data_body: (?::Hash[Symbol|String, untyped] opts) -> void
31
- end
32
- end
33
- end
@@ -1,21 +0,0 @@
1
- module Algolia
2
- module Transport
3
- class StatefulHost
4
- include CallType
5
-
6
- attr_reader url: untyped
7
-
8
- attr_reader protocol: untyped
9
-
10
- attr_reader accept: untyped
11
-
12
- attr_accessor last_use: untyped
13
-
14
- attr_accessor retry_count: untyped
15
-
16
- attr_accessor up: untyped
17
-
18
- def initialize: (String url, ?::Hash[Symbol|String, untyped] opts) -> void
19
- end
20
- end
21
- end
@@ -1,47 +0,0 @@
1
- require_relative 'base_test'
2
-
3
- class AccountClientTest < BaseTest
4
- describe 'Account client' do
5
- def test_account_client
6
- index1 = @@search_client.init_index(get_test_index_name('copy_index'))
7
- index2 = @@search_client.init_index(get_test_index_name('copy_index2'))
8
-
9
- exception = assert_raises Algolia::AlgoliaError do
10
- Algolia::Account::Client.copy_index(index1, index2)
11
- end
12
-
13
- assert_equal 'The indices are on the same application. Use Algolia::Search::Client.copy_index instead.', exception.message
14
-
15
- search_client2 = Algolia::Search::Client.create(APPLICATION_ID_2, ADMIN_KEY_2)
16
- index2 = search_client2.init_index(get_test_index_name('copy_index2'))
17
- index1.save_object!({ objectID: 'one', title: 'Test title' })
18
- index1.save_rule!({
19
- objectID: 'one',
20
- condition: { anchoring: 'is', pattern: 'pattern' },
21
- consequence: {
22
- params: {
23
- query: {
24
- edits: [
25
- { type: 'remove', delete: 'pattern' }
26
- ]
27
- }
28
- }
29
- }
30
- })
31
- index1.save_synonym!({ objectID: 'one', type: 'synonym', synonyms: %w(one two) })
32
- index1.set_settings!({ searchableAttributes: ['title'] })
33
-
34
- Algolia::Account::Client.copy_index!(index1, index2)
35
- assert_equal 'one', index2.get_object('one')[:objectID]
36
- assert_equal 'one', index2.get_synonym('one')[:objectID]
37
- assert_equal 'one', index2.get_rule('one')[:objectID]
38
- assert index2.get_settings[:searchableAttributes]
39
-
40
- exception = assert_raises Algolia::AlgoliaError do
41
- Algolia::Account::Client.copy_index(index1, index2)
42
- end
43
-
44
- assert_equal 'Destination index already exists. Please delete it before copying index across applications.', exception.message
45
- end
46
- end
47
- end
@@ -1,117 +0,0 @@
1
- require_relative 'base_test'
2
- require 'date'
3
-
4
- class AnalyticsClientTest < BaseTest
5
- describe 'Analytics client' do
6
- def test_ab_testing
7
- index1 = @@search_client.init_index(get_test_index_name('ab_testing'))
8
- index2 = @@search_client.init_index(get_test_index_name('ab_testing_dev'))
9
- client = Algolia::Analytics::Client.create(APPLICATION_ID_1, ADMIN_KEY_1)
10
-
11
- index1.save_object!({ objectID: 'one' })
12
- index2.save_object!({ objectID: 'one' })
13
-
14
- ab_test_name = index1.name
15
- tomorrow = Time.now + 24*60*60
16
-
17
- ab_test = {
18
- name: ab_test_name,
19
- variants: [
20
- { index: index1.name, trafficPercentage: 60, description: 'a description' },
21
- { index: index2.name, trafficPercentage: 40 }
22
- ],
23
- endAt: tomorrow.strftime('%Y-%m-%dT%H:%M:%SZ')
24
- }
25
-
26
- response = retry_test do
27
- client.add_ab_test(ab_test)
28
- end
29
- ab_test_id = response[:abTestID]
30
-
31
- index1.wait_task(response[:taskID])
32
- result = client.get_ab_test(ab_test_id)
33
-
34
- assert_equal ab_test[:name], result[:name]
35
- assert_equal ab_test[:variants][0][:index], result[:variants][0][:index]
36
- assert_equal ab_test[:variants][0][:trafficPercentage], result[:variants][0][:trafficPercentage]
37
- assert_equal ab_test[:variants][0][:description], result[:variants][0][:description]
38
- assert_equal ab_test[:endAt], result[:endAt]
39
- refute_equal 'stopped', result[:status]
40
-
41
- ab_tests = client.get_ab_tests
42
- found = false
43
- ab_tests[:abtests].each do |iterated_ab_test|
44
- if iterated_ab_test[:name] == ab_test_name
45
- assert_equal ab_test[:name], iterated_ab_test[:name]
46
- assert_equal ab_test[:variants][0][:index], iterated_ab_test[:variants][0][:index]
47
- assert_equal ab_test[:variants][0][:trafficPercentage], iterated_ab_test[:variants][0][:trafficPercentage]
48
- assert_equal ab_test[:variants][0][:description], iterated_ab_test[:variants][0][:description]
49
- assert_equal ab_test[:endAt], iterated_ab_test[:endAt]
50
- refute_equal 'stopped', iterated_ab_test[:status]
51
- found = true
52
- end
53
- end
54
-
55
- assert found
56
-
57
- response = client.stop_ab_test(ab_test_id)
58
- index1.wait_task(response[:taskID])
59
- result = client.get_ab_test(ab_test_id)
60
- assert_equal 'stopped', result[:status]
61
-
62
- response = client.delete_ab_test(ab_test_id)
63
- index1.wait_task(response[:taskID])
64
-
65
- exception = assert_raises Algolia::AlgoliaHttpError do
66
- client.get_ab_test(ab_test_id)
67
- end
68
-
69
- assert_equal 404, exception.code
70
- assert_equal 'ABTestID not found', exception.message
71
- end
72
-
73
- def test_aa_testing
74
- index = @@search_client.init_index(get_test_index_name('aa_testing'))
75
- client = Algolia::Analytics::Client.create(APPLICATION_ID_1, ADMIN_KEY_1)
76
-
77
- index.save_object!({ objectID: 'one' })
78
-
79
- ab_test_name = index.name
80
- tomorrow = Time.now + 24*60*60
81
-
82
- ab_test = {
83
- name: ab_test_name,
84
- variants: [
85
- { index: index.name, trafficPercentage: 90 },
86
- { index: index.name, trafficPercentage: 10, customSearchParameters: { ignorePlurals: true } }
87
- ],
88
- endAt: tomorrow.strftime('%Y-%m-%dT%H:%M:%SZ')
89
- }
90
-
91
- response = retry_test do
92
- client.add_ab_test(ab_test)
93
- end
94
- ab_test_id = response[:abTestID]
95
-
96
- index.wait_task(response[:taskID])
97
- result = client.get_ab_test(ab_test_id)
98
-
99
- assert_equal ab_test[:name], result[:name]
100
- assert_equal ab_test[:variants][0][:index], result[:variants][0][:index]
101
- assert_equal ab_test[:variants][0][:trafficPercentage], result[:variants][0][:trafficPercentage]
102
- assert_equal ab_test[:variants][1][:customSearchParameters], result[:variants][1][:customSearchParameters]
103
- assert_equal ab_test[:endAt], result[:endAt]
104
- refute_equal 'stopped', result[:status]
105
-
106
- response = client.delete_ab_test(ab_test_id)
107
- index.wait_task(response[:taskID])
108
-
109
- exception = assert_raises Algolia::AlgoliaHttpError do
110
- client.get_ab_test(ab_test_id)
111
- end
112
-
113
- assert_equal 404, exception.code
114
- assert_equal 'ABTestID not found', exception.message
115
- end
116
- end
117
- end
@@ -1,9 +0,0 @@
1
- require 'test_helper'
2
- require 'minitest/hell'
3
-
4
- class BaseTest < Minitest::Test
5
- parallelize_me!
6
- def setup
7
- check_environment_variables
8
- end
9
- end
@@ -1,80 +0,0 @@
1
- require_relative 'base_test'
2
- require 'date'
3
-
4
- class InsightsClientTest < BaseTest
5
- describe 'Insights client' do
6
- def test_insights_client
7
- index = @@search_client.init_index(get_test_index_name('sending_events'))
8
- client = Algolia::Insights::Client.create(APPLICATION_ID_1, ADMIN_KEY_1)
9
-
10
- index.save_objects!([
11
- { objectID: 'one' },
12
- { objectID: 'two' }
13
- ])
14
-
15
- today = Date.today
16
-
17
- client.send_event({
18
- eventType: 'click',
19
- eventName: 'foo',
20
- index: index.name,
21
- userToken: 'bar',
22
- objectIDs: %w(one two),
23
- timestamp: (today - 2).strftime('%Q').to_i
24
- })
25
-
26
- client.send_events([
27
- {
28
- eventType: 'click',
29
- eventName: 'foo',
30
- index: index.name,
31
- userToken: 'bar',
32
- objectIDs: %w(one two),
33
- timestamp: (today - 2).strftime('%Q').to_i
34
- }, {
35
- eventType: 'click',
36
- eventName: 'foo',
37
- index: index.name,
38
- userToken: 'bar',
39
- objectIDs: %w(one two),
40
- timestamp: (today - 2).strftime('%Q').to_i
41
- }
42
- ])
43
-
44
- user_client = client.user('bar')
45
- response = user_client.clicked_object_ids('foo', index.name, %w(one two))
46
- assert_equal 200, response[:status]
47
- assert_equal 'OK', response[:message]
48
-
49
- query_id = index.search('', { clickAnalytics: true })[:queryID]
50
-
51
- response = user_client.clicked_object_ids_after_search('foo', index.name, %w(one two), [1, 2], query_id)
52
- assert_equal 200, response[:status]
53
- assert_equal 'OK', response[:message]
54
-
55
- response = user_client.clicked_filters('foo', index.name, %w(filter:foo filter:bar))
56
- assert_equal 200, response[:status]
57
- assert_equal 'OK', response[:message]
58
-
59
- response = user_client.converted_object_ids('foo', index.name, %w(one two))
60
- assert_equal 200, response[:status]
61
- assert_equal 'OK', response[:message]
62
-
63
- response = user_client.converted_object_ids_after_search('foo', index.name, %w(one two), query_id)
64
- assert_equal 200, response[:status]
65
- assert_equal 'OK', response[:message]
66
-
67
- response = user_client.converted_filters('foo', index.name, %w(filter:foo filter:bar))
68
- assert_equal 200, response[:status]
69
- assert_equal 'OK', response[:message]
70
-
71
- response = user_client.viewed_object_ids('foo', index.name, %w(one two))
72
- assert_equal 200, response[:status]
73
- assert_equal 'OK', response[:message]
74
-
75
- response = user_client.viewed_filters('foo', index.name, %w(filter:foo filter:bar))
76
- assert_equal 200, response[:status]
77
- assert_equal 'OK', response[:message]
78
- end
79
- end
80
- end
@@ -1,47 +0,0 @@
1
- class MockRequester
2
- attr_accessor :requests
3
- def initialize
4
- @connection = nil
5
- @requests = []
6
- end
7
-
8
- def send_request(host, method, path, body, headers, timeout, connect_timeout)
9
- request = {
10
- host: host,
11
- method: method,
12
- path: path,
13
- body: body,
14
- headers: headers,
15
- timeout: timeout,
16
- connect_timeout: connect_timeout
17
- }
18
-
19
- @requests.push(request)
20
-
21
- Algolia::Http::Response.new(
22
- status: 200,
23
- body: '{"hits": [], "status": "published"}',
24
- headers: {}
25
- )
26
- end
27
-
28
- # Retrieve the connection from the @connections
29
- #
30
- # @param host [StatefulHost]
31
- #
32
- # @return [Faraday::Connection]
33
- #
34
- def get_connection(host)
35
- @connection = host
36
- end
37
-
38
- # Build url from host, path and parameters
39
- #
40
- # @param host [StatefulHost]
41
- #
42
- # @return [String]
43
- #
44
- def build_url(host)
45
- host.protocol + host.url
46
- end
47
- end
@@ -1,30 +0,0 @@
1
- require_relative 'base_test'
2
- require 'date'
3
-
4
- class PersonalizationClientTest < BaseTest
5
- describe 'Personalization client' do
6
- def test_personalization_client
7
- client = Algolia::Personalization::Client.create(APPLICATION_ID_1, ADMIN_KEY_1)
8
- personalization_strategy = {
9
- eventsScoring: [
10
- { eventName: 'Add to cart', eventType: 'conversion', score: 50 },
11
- { eventName: 'Purchase', eventType: 'conversion', score: 100 }
12
- ],
13
- facetsScoring: [
14
- { facetName: 'brand', score: 100 },
15
- { facetName: 'categories', score: 10 }
16
- ],
17
- personalizationImpact: 0
18
- }
19
-
20
- begin
21
- client.set_personalization_strategy(personalization_strategy)
22
- rescue Algolia::AlgoliaHttpError => e
23
- raise e unless e.code == 429
24
- end
25
- response = client.get_personalization_strategy
26
-
27
- assert_equal response, personalization_strategy
28
- end
29
- end
30
- end
@@ -1,70 +0,0 @@
1
- require 'securerandom'
2
- require_relative 'base_test'
3
-
4
- class RecommendClientTest < BaseTest
5
- describe 'Recommendations' do
6
- def test_get_recommendations
7
- requester = MockRequester.new
8
- client = Algolia::Recommend::Client.new(@@search_config, http_requester: requester)
9
-
10
- # It correctly formats queries using the 'bought-together' model
11
- client.get_recommendations([{ indexName: 'products', objectID: 'B018APC4LE', model: Algolia::Recommend::Model::BOUGHT_TOGETHER }])
12
-
13
- # It correctly formats queries using the 'related-products' model
14
- client.get_recommendations([{ indexName: 'products', objectID: 'B018APC4LE', model: Algolia::Recommend::Model::RELATED_PRODUCTS }])
15
-
16
- # It correctly formats multiple queries.
17
- client.get_recommendations(
18
- [
19
- { indexName: 'products', objectID: 'B018APC4LE-1', model: Algolia::Recommend::Model::RELATED_PRODUCTS, threshold: 0 },
20
- { indexName: 'products', objectID: 'B018APC4LE-2', model: Algolia::Recommend::Model::RELATED_PRODUCTS, threshold: 0 }
21
- ]
22
- )
23
-
24
- # It resets the threshold to 0 if it's not numeric.
25
- client.get_recommendations([{ indexName: 'products', objectID: 'B018APC4LE', model: Algolia::Recommend::Model::BOUGHT_TOGETHER, threshold: nil }])
26
-
27
- # It passes the threshold correctly if it's numeric.
28
- client.get_recommendations([{ indexName: 'products', objectID: 'B018APC4LE', model: Algolia::Recommend::Model::BOUGHT_TOGETHER, threshold: 42 }])
29
-
30
- assert_requests(
31
- requester,
32
- [
33
- { method: :post, path: '/1/indexes/*/recommendations', body: '{"requests":[{"indexName":"products","objectID":"B018APC4LE","model":"bought-together","threshold":0}]}' },
34
- { method: :post, path: '/1/indexes/*/recommendations', body: '{"requests":[{"indexName":"products","objectID":"B018APC4LE","model":"related-products","threshold":0}]}' },
35
- { method: :post, path: '/1/indexes/*/recommendations', body: '{"requests":[{"indexName":"products","objectID":"B018APC4LE-1","model":"related-products","threshold":0},{"indexName":"products","objectID":"B018APC4LE-2","model":"related-products","threshold":0}]}' },
36
- { method: :post, path: '/1/indexes/*/recommendations', body: '{"requests":[{"indexName":"products","objectID":"B018APC4LE","model":"bought-together","threshold":0}]}' },
37
- { method: :post, path: '/1/indexes/*/recommendations', body: '{"requests":[{"indexName":"products","objectID":"B018APC4LE","model":"bought-together","threshold":42}]}' }
38
- ]
39
- )
40
- end
41
-
42
- def test_get_related_products
43
- requester = MockRequester.new
44
- client = Algolia::Recommend::Client.new(@@search_config, http_requester: requester)
45
-
46
- client.get_related_products([{ indexName: 'products', objectID: 'B018APC4LE' }])
47
-
48
- assert_requests(
49
- requester,
50
- [{ method: :post, path: '/1/indexes/*/recommendations', body: '{"requests":[{"indexName":"products","objectID":"B018APC4LE","model":"related-products","threshold":0}]}' }]
51
- )
52
- end
53
-
54
- def test_get_frequently_bought_together
55
- requester = MockRequester.new
56
- client = Algolia::Recommend::Client.new(@@search_config, http_requester: requester)
57
-
58
- client.get_frequently_bought_together([{ indexName: 'products', objectID: 'B018APC4LE' }])
59
- client.get_frequently_bought_together([{ indexName: 'products', objectID: 'B018APC4LE', fallbackParameters: {} }])
60
-
61
- assert_requests(
62
- requester,
63
- [
64
- { method: :post, path: '/1/indexes/*/recommendations', body: '{"requests":[{"indexName":"products","objectID":"B018APC4LE","model":"bought-together","threshold":0}]}' },
65
- { method: :post, path: '/1/indexes/*/recommendations', body: '{"requests":[{"indexName":"products","objectID":"B018APC4LE","model":"bought-together","threshold":0}]}' }
66
- ]
67
- )
68
- end
69
- end
70
- end