elastic-enterprise-search 0.3.1 → 7.12.1

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 (210) hide show
  1. checksums.yaml +4 -4
  2. data/.ci/.gitignore +1 -0
  3. data/.ci/Dockerfile +12 -0
  4. data/.ci/certs/README.md +50 -0
  5. data/.ci/certs/ca.crt +20 -0
  6. data/.ci/certs/ca.key +27 -0
  7. data/.ci/certs/testnode.crt +21 -0
  8. data/.ci/certs/testnode.key +27 -0
  9. data/.ci/certs/testnode_no_san.crt +19 -0
  10. data/.ci/certs/testnode_no_san.key +27 -0
  11. data/.ci/functions/cleanup.sh +67 -0
  12. data/.ci/functions/imports.sh +59 -0
  13. data/.ci/functions/wait-for-container.sh +36 -0
  14. data/.ci/jobs/defaults.yml +69 -0
  15. data/.ci/jobs/elastic+enterprise-search-ruby+7.11.yml +12 -0
  16. data/.ci/jobs/elastic+enterprise-search-ruby+master.yml +12 -0
  17. data/.ci/jobs/elastic+enterprise-search-ruby+pull-request.yml +19 -0
  18. data/.ci/run-elasticsearch.sh +127 -0
  19. data/.ci/run-enterprise-search.sh +71 -0
  20. data/.ci/run-local.sh +14 -0
  21. data/.ci/run-repository.sh +49 -0
  22. data/.ci/run-tests +27 -0
  23. data/.ci/test-matrix.yml +14 -0
  24. data/.github/workflows/rubocop.yml +15 -0
  25. data/.github/workflows/testing.yml +40 -0
  26. data/.gitignore +4 -0
  27. data/.rubocop.yml +52 -0
  28. data/CONTRIBUTING.md +43 -0
  29. data/Gemfile +23 -1
  30. data/{LICENSE.txt → LICENSE} +33 -32
  31. data/README.md +27 -147
  32. data/Rakefile +48 -1
  33. data/docs/guide/app-search-api.asciidoc +186 -0
  34. data/docs/guide/connecting.asciidoc +125 -0
  35. data/docs/guide/development.asciidoc +42 -0
  36. data/docs/guide/enterprise-search-api.asciidoc +46 -0
  37. data/docs/guide/index.asciidoc +19 -0
  38. data/docs/guide/installation.asciidoc +18 -0
  39. data/docs/guide/overview.asciidoc +59 -0
  40. data/docs/guide/release_notes/710.asciidoc +4 -0
  41. data/docs/guide/release_notes/711.asciidoc +27 -0
  42. data/docs/guide/release_notes/712.asciidoc +38 -0
  43. data/docs/guide/release_notes/index.asciidoc +14 -0
  44. data/docs/guide/workplace-search-api.asciidoc +121 -0
  45. data/elastic-enterprise-search.gemspec +49 -13
  46. data/lib/elastic-enterprise-search.rb +20 -1
  47. data/lib/elastic/.rubocop.yml +6 -0
  48. data/lib/elastic/app-search/api/add_meta_engine_source.rb +51 -0
  49. data/lib/elastic/app-search/api/api_logs.rb +62 -0
  50. data/lib/elastic/app-search/api/count_analytics.rb +52 -0
  51. data/lib/elastic/app-search/api/create_curation.rb +54 -0
  52. data/lib/elastic/app-search/api/create_engine.rb +53 -0
  53. data/lib/elastic/app-search/api/create_synonym_set.rb +51 -0
  54. data/lib/elastic/app-search/api/curation.rb +53 -0
  55. data/lib/elastic/app-search/api/delete_curation.rb +53 -0
  56. data/lib/elastic/app-search/api/delete_documents.rb +51 -0
  57. data/lib/elastic/app-search/api/delete_engine.rb +50 -0
  58. data/lib/elastic/app-search/api/delete_meta_engine_source.rb +51 -0
  59. data/lib/elastic/app-search/api/delete_synonym_set.rb +53 -0
  60. data/lib/elastic/app-search/api/documents.rb +51 -0
  61. data/lib/elastic/app-search/api/engine.rb +50 -0
  62. data/lib/elastic/app-search/api/index_documents.rb +51 -0
  63. data/lib/elastic/app-search/api/list_curations.rb +52 -0
  64. data/lib/elastic/app-search/api/list_documents.rb +52 -0
  65. data/lib/elastic/app-search/api/list_engines.rb +49 -0
  66. data/lib/elastic/app-search/api/list_synonym_sets.rb +52 -0
  67. data/lib/elastic/app-search/api/log_clickthrough.rb +57 -0
  68. data/lib/elastic/app-search/api/multi_search.rb +51 -0
  69. data/lib/elastic/app-search/api/put_curation.rb +57 -0
  70. data/lib/elastic/app-search/api/put_documents.rb +51 -0
  71. data/lib/elastic/app-search/api/put_schema.rb +51 -0
  72. data/lib/elastic/app-search/api/put_search_settings.rb +51 -0
  73. data/lib/elastic/app-search/api/put_synonym_set.rb +54 -0
  74. data/lib/elastic/app-search/api/query_suggestion.rb +54 -0
  75. data/lib/elastic/app-search/api/reset_search_settings.rb +50 -0
  76. data/lib/elastic/app-search/api/schema.rb +50 -0
  77. data/lib/elastic/app-search/api/search.rb +50 -0
  78. data/lib/elastic/app-search/api/search_settings.rb +50 -0
  79. data/lib/elastic/app-search/api/synonym_set.rb +53 -0
  80. data/lib/elastic/app-search/api/top_clicks_analytics.rb +54 -0
  81. data/lib/elastic/app-search/api/top_queries_analytics.rb +53 -0
  82. data/lib/elastic/app-search/app_search.rb +82 -0
  83. data/lib/elastic/enterprise-search/api/health.rb +43 -0
  84. data/lib/elastic/enterprise-search/api/put_read_only.rb +44 -0
  85. data/lib/elastic/enterprise-search/api/read_only.rb +43 -0
  86. data/lib/elastic/enterprise-search/api/stats.rb +45 -0
  87. data/lib/elastic/enterprise-search/api/version.rb +43 -0
  88. data/lib/elastic/enterprise-search/client.rb +93 -15
  89. data/lib/elastic/enterprise-search/configuration.rb +32 -16
  90. data/lib/elastic/enterprise-search/exceptions.rb +19 -0
  91. data/lib/elastic/enterprise-search/request.rb +59 -81
  92. data/lib/elastic/enterprise-search/utils.rb +28 -1
  93. data/lib/elastic/enterprise-search/version.rb +20 -1
  94. data/lib/elastic/enterprise_search.rb +38 -0
  95. data/lib/elastic/workplace-search/api/add_user_permissions.rb +54 -0
  96. data/lib/elastic/workplace-search/api/create_analytics_event.rb +59 -0
  97. data/lib/elastic/workplace-search/api/create_external_identity.rb +51 -0
  98. data/lib/elastic/workplace-search/api/delete_documents.rb +51 -0
  99. data/lib/elastic/workplace-search/api/delete_external_identity.rb +53 -0
  100. data/lib/elastic/workplace-search/api/external_identity.rb +53 -0
  101. data/lib/elastic/workplace-search/api/index_documents.rb +52 -0
  102. data/lib/elastic/workplace-search/api/list_external_identities.rb +51 -0
  103. data/lib/elastic/workplace-search/api/list_permissions.rb +51 -0
  104. data/lib/elastic/workplace-search/api/put_external_identity.rb +54 -0
  105. data/lib/elastic/workplace-search/api/put_user_permissions.rb +54 -0
  106. data/lib/elastic/workplace-search/api/remove_user_permissions.rb +54 -0
  107. data/lib/elastic/workplace-search/api/search.rb +60 -0
  108. data/lib/elastic/workplace-search/api/user_permissions.rb +53 -0
  109. data/lib/elastic/workplace-search/workplace_search.rb +84 -0
  110. data/spec/app-search/api_count_analytics_spec.rb +34 -0
  111. data/spec/app-search/api_curations_spec.rb +97 -0
  112. data/spec/app-search/api_documents_spec.rb +102 -0
  113. data/spec/app-search/api_engines_spec.rb +67 -0
  114. data/spec/app-search/api_log_clickthrough_spec.rb +34 -0
  115. data/spec/app-search/api_logs_spec.rb +36 -0
  116. data/spec/app-search/api_meta_engines_spec.rb +72 -0
  117. data/spec/app-search/api_query_suggestion_spec.rb +39 -0
  118. data/spec/app-search/api_schema_spec.rb +48 -0
  119. data/spec/app-search/api_search_and_multi_search_spec.rb +48 -0
  120. data/spec/app-search/api_search_settings_spec.rb +76 -0
  121. data/spec/app-search/api_spec_helper.rb +14 -0
  122. data/spec/app-search/api_synonyms_spec.rb +79 -0
  123. data/spec/app-search/api_top_clicks_analytics_spec.rb +44 -0
  124. data/spec/app-search/api_top_queries_analytics_spec.rb +34 -0
  125. data/spec/app-search/client_spec.rb +88 -0
  126. data/spec/app-search/date_spec.rb +69 -0
  127. data/spec/enterprise-search/client_spec.rb +107 -0
  128. data/spec/enterprise-search/request_spec.rb +136 -0
  129. data/spec/enterprise-search/utils_spec.rb +46 -0
  130. data/spec/fixtures/vcr/app_search/add_meta_engine_source.yml +109 -0
  131. data/spec/fixtures/vcr/app_search/api_documents.yml +56 -0
  132. data/spec/fixtures/vcr/app_search/api_index_documents.yml +57 -0
  133. data/spec/fixtures/vcr/app_search/api_log_clickthrough.yml +54 -0
  134. data/spec/fixtures/vcr/app_search/api_logs.yml +70 -0
  135. data/spec/fixtures/vcr/app_search/api_put_schema.yml +109 -0
  136. data/spec/fixtures/vcr/app_search/api_put_search_settings.yml +56 -0
  137. data/spec/fixtures/vcr/app_search/api_query_suggestion.yml +59 -0
  138. data/spec/fixtures/vcr/app_search/api_reset_search_settings.yml +56 -0
  139. data/spec/fixtures/vcr/app_search/api_schema.yml +56 -0
  140. data/spec/fixtures/vcr/app_search/api_search_settings.yml +56 -0
  141. data/spec/fixtures/vcr/app_search/api_top_clicks_analytics.yml +55 -0
  142. data/spec/fixtures/vcr/app_search/api_top_clicks_analytics_query.yml +55 -0
  143. data/spec/fixtures/vcr/app_search/api_top_queries_analytics.yml +55 -0
  144. data/spec/fixtures/vcr/app_search/count_analytics.yml +55 -0
  145. data/spec/fixtures/vcr/app_search/create_and_update_document.yml +107 -0
  146. data/spec/fixtures/vcr/app_search/create_curation.yml +113 -0
  147. data/spec/fixtures/vcr/app_search/create_engine.yml +55 -0
  148. data/spec/fixtures/vcr/app_search/create_meta_engine.yml +56 -0
  149. data/spec/fixtures/vcr/app_search/create_synonym_set.yml +56 -0
  150. data/spec/fixtures/vcr/app_search/delete_curation.yml +56 -0
  151. data/spec/fixtures/vcr/app_search/delete_engine.yml +55 -0
  152. data/spec/fixtures/vcr/app_search/delete_meta_engine_source.yml +56 -0
  153. data/spec/fixtures/vcr/app_search/delete_synonym_set.yml +56 -0
  154. data/spec/fixtures/vcr/app_search/get_curation.yml +56 -0
  155. data/spec/fixtures/vcr/app_search/get_engine.yml +55 -0
  156. data/spec/fixtures/vcr/app_search/index_and_delete_document.yml +107 -0
  157. data/spec/fixtures/vcr/app_search/list_curations.yml +56 -0
  158. data/spec/fixtures/vcr/app_search/list_documents.yml +57 -0
  159. data/spec/fixtures/vcr/app_search/list_engines.yml +55 -0
  160. data/spec/fixtures/vcr/app_search/list_synonym_sets.yml +56 -0
  161. data/spec/fixtures/vcr/app_search/multi_query_search.yml +63 -0
  162. data/spec/fixtures/vcr/app_search/put_curation.yml +113 -0
  163. data/spec/fixtures/vcr/app_search/put_synonym_set.yml +56 -0
  164. data/spec/fixtures/vcr/app_search/search.yml +57 -0
  165. data/spec/fixtures/vcr/app_search/single_query_search.yml +60 -0
  166. data/spec/fixtures/vcr/app_search/synonym_set.yml +56 -0
  167. data/spec/fixtures/vcr/workplace_search/add_user_permissions.yml +53 -0
  168. data/spec/fixtures/vcr/workplace_search/clear_user_permissions.yml +53 -0
  169. data/spec/fixtures/vcr/workplace_search/create_analytics_event.yml +55 -0
  170. data/spec/fixtures/vcr/workplace_search/create_external_identity.yml +53 -0
  171. data/spec/fixtures/vcr/workplace_search/delete_documents.yml +53 -0
  172. data/spec/fixtures/vcr/workplace_search/delete_external_identity.yml +53 -0
  173. data/spec/fixtures/vcr/workplace_search/index_documents.yml +55 -0
  174. data/spec/fixtures/vcr/workplace_search/list_external_identities.yml +53 -0
  175. data/spec/fixtures/vcr/workplace_search/list_permissions.yml +53 -0
  176. data/spec/fixtures/vcr/workplace_search/oauth_request_token.yml +57 -0
  177. data/spec/fixtures/vcr/workplace_search/put_external_identity.yml +53 -0
  178. data/spec/fixtures/vcr/workplace_search/put_user_permissions.yml +103 -0
  179. data/spec/fixtures/vcr/workplace_search/remove_user_permissions.yml +53 -0
  180. data/spec/fixtures/vcr/workplace_search/retrieve_external_identity.yml +53 -0
  181. data/spec/fixtures/vcr/workplace_search/search_request.yml +60 -0
  182. data/spec/fixtures/vcr/workplace_search/user_permissions_empty.yml +53 -0
  183. data/spec/integration/enterprise_search_api_spec.rb +96 -0
  184. data/spec/spec_helper.rb +27 -14
  185. data/spec/webmock_requires.rb +4 -0
  186. data/spec/workplace-search/client_spec.rb +77 -0
  187. data/spec/workplace-search/create_analytics_event_spec.rb +59 -0
  188. data/spec/workplace-search/documents_spec.rb +80 -0
  189. data/spec/workplace-search/external_identities_spec.rb +84 -0
  190. data/spec/workplace-search/permissions_spec.rb +136 -0
  191. data/spec/workplace-search/search_spec.rb +53 -0
  192. metadata +279 -47
  193. data/.circleci/config.yml +0 -68
  194. data/.travis.yml +0 -15
  195. data/NOTICE.txt +0 -3
  196. data/lib/elastic/enterprise-search.rb +0 -7
  197. data/lib/elastic/enterprise-search/client/content_source_documents.rb +0 -46
  198. data/lib/elastic/enterprise-search/client/permissions.rb +0 -30
  199. data/logo-enterprise-search.png +0 -0
  200. data/spec/client/content_source_documents_spec.rb +0 -55
  201. data/spec/client/permissions_spec.rb +0 -75
  202. data/spec/configuration_spec.rb +0 -19
  203. data/spec/fixtures/vcr/add_user_permissions.yml +0 -55
  204. data/spec/fixtures/vcr/async_create_or_update_document_success.yml +0 -51
  205. data/spec/fixtures/vcr/destroy_documents_success.yml +0 -51
  206. data/spec/fixtures/vcr/get_user_permissions.yml +0 -55
  207. data/spec/fixtures/vcr/list_all_permissions.yml +0 -55
  208. data/spec/fixtures/vcr/list_all_permissions_with_paging.yml +0 -55
  209. data/spec/fixtures/vcr/remove_user_permissions.yml +0 -55
  210. data/spec/fixtures/vcr/update_user_permissions.yml +0 -55
data/.circleci/config.yml DELETED
@@ -1,68 +0,0 @@
1
- # Ruby CircleCI 2.0 configuration file
2
- #
3
- # Check https://circleci.com/docs/2.0/language-ruby/ for more details
4
- #
5
- version: 2.1
6
-
7
- executors:
8
- ruby-24: {docker: [{image: 'ruby:2.4'}]}
9
- ruby-25: {docker: [{image: 'ruby:2.5'}]}
10
- ruby-26: {docker: [{image: 'ruby:2.6'}]}
11
- jruby-92: {docker: [{image: 'jruby:9.2.7-jdk'}]}
12
-
13
- jobs:
14
- build:
15
- parameters:
16
- executor:
17
- type: executor
18
- executor: << parameters.executor >>
19
-
20
- working_directory: ~/repo
21
-
22
- steps:
23
- - checkout
24
-
25
- # Download and cache dependencies
26
- - restore_cache:
27
- keys:
28
- - v1-dependencies-{{ checksum "Gemfile" }}
29
- # fallback to using the latest cache if no exact match is found
30
- - v1-dependencies-
31
-
32
- - run:
33
- name: install dependencies
34
- command: |
35
- bundle install --jobs=4 --retry=3 --path vendor/bundle
36
-
37
- - save_cache:
38
- paths:
39
- - ./vendor/bundle
40
- key: v1-dependencies-{{ checksum "Gemfile" }}
41
-
42
- # run tests!
43
- - run:
44
- name: run tests
45
- command: |
46
- mkdir /tmp/test-results
47
- TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)"
48
-
49
- bundle exec rspec --format progress \
50
- --out /tmp/test-results/rspec.xml \
51
- --format progress \
52
- $TEST_FILES
53
-
54
- # collect reports
55
- - store_test_results:
56
- path: /tmp/test-results
57
- - store_artifacts:
58
- path: /tmp/test-results
59
- destination: test-results
60
-
61
-
62
- workflows:
63
- run-tests:
64
- jobs:
65
- - build: {name: run-tests-ruby-2.4, executor: ruby-24}
66
- - build: {name: run-tests-ruby-2.5, executor: ruby-25}
67
- - build: {name: run-tests-ruby-2.6, executor: ruby-26}
68
- - build: {name: run-tests-jruby-92, executor: jruby-92}
data/.travis.yml DELETED
@@ -1,15 +0,0 @@
1
- language: ruby
2
- script: rspec
3
- rvm:
4
- - 2.0
5
- - 2.1
6
- - 2.2
7
- - 2.4
8
- - jruby
9
- jdk:
10
- - oraclejdk8
11
-
12
- before_install:
13
- - gem update --system
14
- - gem --version
15
- - gem update bundler
data/NOTICE.txt DELETED
@@ -1,3 +0,0 @@
1
- Elastic Enterprise Search Ruby client.
2
-
3
- Copyright 2012-2019 Elasticsearch B.V.
@@ -1,7 +0,0 @@
1
- require 'elastic/enterprise-search/client'
2
-
3
- module Elastic
4
- module EnterpriseSearch
5
- extend Elastic::EnterpriseSearch::Configuration
6
- end
7
- end
@@ -1,46 +0,0 @@
1
- # Content Source API - https://swiftype.com/documentation/enterprise-search/api/custom-sources
2
- module Elastic
3
- module EnterpriseSearch
4
- class Client
5
- module ContentSourceDocuments
6
-
7
- # Index a batch of documents.
8
- #
9
- # @param [String] content_source_key the unique Content Source key as found in your Content Sources dashboard
10
- # @param [Array] documents an Array of Document Hashes
11
- #
12
- # @return [Array<Hash>] an Array of Document indexing Results
13
- #
14
- # @raise [Elastic::EnterpriseSearch::InvalidDocument] when a single document is missing required fields or contains unsupported fields
15
- # @raise [Timeout::Error] when timeout expires waiting for results
16
- def index_documents(content_source_key, documents)
17
- documents = Array(documents).map! { |document| normalize_document(document) }
18
-
19
- async_create_or_update_documents(content_source_key, documents)
20
- end
21
-
22
- # Destroy a batch of documents given a list of external IDs
23
- #
24
- # @param [Array<String>] document_ids an Array of Document External IDs
25
- #
26
- # @return [Array<Hash>] an Array of Document destroy result hashes
27
- #
28
- # @raise [Timeout::Error] when timeout expires waiting for results
29
- def destroy_documents(content_source_key, document_ids)
30
- document_ids = Array(document_ids)
31
- post("ent/sources/#{content_source_key}/documents/bulk_destroy.json", document_ids)
32
- end
33
-
34
- private
35
-
36
- def async_create_or_update_documents(content_source_key, documents)
37
- post("ent/sources/#{content_source_key}/documents/bulk_create.json", documents)
38
- end
39
-
40
- def normalize_document(document)
41
- Utils.stringify_keys(document)
42
- end
43
- end
44
- end
45
- end
46
- end
@@ -1,30 +0,0 @@
1
- # Document Permissions API - /documentation/enterprise-search/api/document-permissions
2
- module Elastic
3
- module EnterpriseSearch
4
- class Client
5
- module Permissions
6
-
7
- def list_all_permissions(content_source_key, current: 1, size: 25)
8
- get("ent/sources/#{content_source_key}/permissions", "page[current]" => current, "page[size]" => size )
9
- end
10
-
11
- def get_user_permissions(content_source_key, user)
12
- get("ent/sources/#{content_source_key}/permissions/#{user}")
13
- end
14
-
15
- def update_user_permissions(content_source_key, user, options)
16
- post("ent/sources/#{content_source_key}/permissions/#{user}", options)
17
- end
18
-
19
- def add_user_permissions(content_source_key, user, options)
20
- post("ent/sources/#{content_source_key}/permissions/#{user}/add", options)
21
- end
22
-
23
- def remove_user_permissions(content_source_key, user, options)
24
- post("ent/sources/#{content_source_key}/permissions/#{user}/remove", options)
25
- end
26
-
27
- end
28
- end
29
- end
30
- end
Binary file
@@ -1,55 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Elastic::EnterpriseSearch::Client::ContentSourceDocuments do
4
- let(:engine_slug) { 'enterprise-search-api-example' }
5
- let(:client) { Elastic::EnterpriseSearch::Client.new }
6
-
7
- before :each do
8
- Elastic::EnterpriseSearch.access_token = 'cGUN-vBokevBhhzyA669'
9
- end
10
-
11
- def check_receipt_response_format(response, options = {})
12
- expect(response.keys).to match_array(["document_receipts", "batch_link"])
13
- expect(response["document_receipts"]).to be_a_kind_of(Array)
14
- expect(response["document_receipts"].first.keys).to match_array(["id", "id", "links", "status", "errors"])
15
- expect(response["document_receipts"].first["id"]).to eq(options[:id]) if options[:id]
16
- expect(response["document_receipts"].first["status"]).to eq(options[:status]) if options[:status]
17
- expect(response["document_receipts"].first["errors"]).to eq(options[:errors]) if options[:errors]
18
- end
19
-
20
- let(:content_source_key) { '59542d332139de0acacc7dd4' }
21
- let(:documents) do
22
- [{'id'=>'INscMGmhmX4',
23
- 'url' => 'http://www.youtube.com/watch?v=v1uyQZNg2vE',
24
- 'title' => 'The Original Grumpy Cat',
25
- 'body' => 'this is a test'},
26
- {'id'=>'JNDFojsd02',
27
- 'url' => 'http://www.youtube.com/watch?v=tsdfhk2j',
28
- 'title' => 'Another Grumpy Cat',
29
- 'body' => 'this is also a test'}]
30
- end
31
-
32
- context '#index_documents' do
33
- it 'returns results when successful' do
34
- VCR.use_cassette(:async_create_or_update_document_success) do
35
- response = client.index_documents(content_source_key, documents)
36
- expect(response.size).to eq(2)
37
- end
38
- end
39
- end
40
-
41
- context '#destroy_documents' do
42
- it 'returns #async_create_or_update_documents format return when async has been passed as true' do
43
- VCR.use_cassette(:async_create_or_update_document_success) do
44
- VCR.use_cassette(:document_receipts_multiple_complete) do
45
- client.index_documents(content_source_key, documents)
46
- VCR.use_cassette(:destroy_documents_success) do
47
- response = client.destroy_documents(content_source_key, [documents.first['id']])
48
- expect(response.size).to eq(1)
49
- expect(response.first['success']).to eq(true)
50
- end
51
- end
52
- end
53
- end
54
- end
55
- end
@@ -1,75 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Elastic::EnterpriseSearch::Client::Permissions do
4
- let(:client) { Elastic::EnterpriseSearch::Client.new }
5
-
6
- before :each do
7
- Elastic::EnterpriseSearch.access_token = 'xyT3mm3ecPsPuYxd_6fX'
8
- end
9
-
10
- let(:content_source_key) { '5d96387b75444bf49532c24a' }
11
- let(:user) { 'enterprise_search' }
12
-
13
- context '#list_all_permissions' do
14
- it 'lists all permissions' do
15
- VCR.use_cassette(:list_all_permissions) do
16
- response = client.list_all_permissions(content_source_key)
17
- expect(response['results'].size).to eq(2)
18
- end
19
- end
20
-
21
- it 'lists all permissions with paging' do
22
- VCR.use_cassette(:list_all_permissions_with_paging) do
23
- response = client.list_all_permissions(content_source_key, :current => 2, :size => 5)
24
- expect(response['meta']['page']['current']).to eq(2)
25
- expect(response['meta']['page']['size']).to eq(5)
26
- expect(response['results'].size).to eq(0)
27
- end
28
- end
29
- end
30
-
31
- context '#add_user_permissions' do
32
- let(:permissions) { ['permission1'] }
33
-
34
- it 'adds permissions to a user' do
35
- VCR.use_cassette(:add_user_permissions) do
36
- response = client.add_user_permissions(content_source_key, user, :permissions => permissions)
37
- expect(response['permissions']).to eq(['permission1'])
38
- end
39
- end
40
- end
41
-
42
- context '#get_user_permissions' do
43
- let(:permissions) { ['permission1'] }
44
-
45
- it 'gets permissions for a user' do
46
- VCR.use_cassette(:get_user_permissions) do
47
- response = client.get_user_permissions(content_source_key, user)
48
- expect(response['permissions']).to eq(['permission1'])
49
- end
50
- end
51
- end
52
-
53
- context '#update_user_permissions' do
54
- let(:permissions) { ['permission2'] }
55
-
56
- it 'updates permissions for a user' do
57
- VCR.use_cassette(:update_user_permissions) do
58
- response = client.update_user_permissions(content_source_key, user, :permissions => permissions)
59
- expect(response['permissions']).to eq(['permission2'])
60
- end
61
- end
62
- end
63
-
64
- context '#remove_user_permissions' do
65
- let(:permissions) { ['permission2'] }
66
-
67
- it 'removes permissions from a user' do
68
- VCR.use_cassette(:remove_user_permissions) do
69
- response = client.remove_user_permissions(content_source_key, user, :permissions => permissions)
70
- expect(response['permissions']).to eq([])
71
- end
72
- end
73
- end
74
-
75
- end
@@ -1,19 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'Configuration' do
4
- context '.endpoint' do
5
- context 'with a trailing /' do
6
- it 'adds / to the end of of the URL' do
7
- Elastic::EnterpriseSearch.endpoint = 'https://api.swiftype.com/api/v1'
8
- expect(Elastic::EnterpriseSearch.endpoint).to eq('https://api.swiftype.com/api/v1/')
9
- end
10
- end
11
-
12
- context 'with a trailing /' do
13
- it 'leaves the URL alone' do
14
- Elastic::EnterpriseSearch.endpoint = 'https://api.swiftype.com/api/v1/'
15
- expect(Elastic::EnterpriseSearch.endpoint).to eq('https://api.swiftype.com/api/v1/')
16
- end
17
- end
18
- end
19
- end
@@ -1,55 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: post
5
- uri: http://localhost:3002/api/v1/ent/sources/5d96387b75444bf49532c24a/permissions/enterprise_search/add
6
- body:
7
- encoding: UTF-8
8
- string: '{"permissions":["permission1"]}'
9
- headers:
10
- Accept-Encoding:
11
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
- Accept:
13
- - "*/*"
14
- User-Agent:
15
- - Ruby
16
- Content-Type:
17
- - application/json
18
- X-Swiftype-Client:
19
- - elastic-enterprise-search-ruby
20
- X-Swiftype-Client-Version:
21
- - 0.3.1
22
- Authorization:
23
- - Bearer xyT3mm3ecPsPuYxd_6fX
24
- response:
25
- status:
26
- code: 200
27
- message: OK
28
- headers:
29
- X-Frame-Options:
30
- - SAMEORIGIN
31
- X-Xss-Protection:
32
- - 1; mode=block
33
- X-Content-Type-Options:
34
- - nosniff
35
- Content-Type:
36
- - application/json; charset=utf-8
37
- Etag:
38
- - W/"6cb0d74ff26d6f74253df3ee283a38dd"
39
- Cache-Control:
40
- - max-age=0, private, must-revalidate
41
- Set-Cookie:
42
- - _st_frito_togo_session=KzdUM3ZvN3Z3aUIvRHNudUF0ZzJaT01EK2tNUk53akxDNVBlNWZxYVVDd3o4YlhqZXVUWjA3MWlqSlZnNzB0eFJrRW5RaUZBRFdHeVdtRnBtWUs5bWc9PS0tcEhjSk0xekxrOGRrcXNsWE83dlJrUT09--6f1c0da2f24a45042ff4492d5bac3ae214cd3731;
43
- path=/; expires=Mon, 08 Oct 2029 18:04:32 -0000; HttpOnly
44
- X-Request-Id:
45
- - 616a8613-11c8-4031-8767-16f3ff735170
46
- X-Runtime:
47
- - '0.310198'
48
- Transfer-Encoding:
49
- - chunked
50
- body:
51
- encoding: UTF-8
52
- string: '{"user":"enterprise_search","permissions":["permission1"]}'
53
- http_version:
54
- recorded_at: Tue, 08 Oct 2019 18:04:32 GMT
55
- recorded_with: VCR 3.0.3
@@ -1,51 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: post
5
- uri: http://localhost:3002/api/v1/ent/sources/59542d332139de0acacc7dd4/documents/bulk_create.json
6
- body:
7
- encoding: UTF-8
8
- string: '[{"id":"INscMGmhmX4","url":"http://www.youtube.com/watch?v=v1uyQZNg2vE","title":"The
9
- Original Grumpy Cat","body":"this is a test"},{"id":"JNDFojsd02","url":"http://www.youtube.com/watch?v=tsdfhk2j","title":"Another
10
- Grumpy Cat","body":"this is also a test"}]'
11
- headers:
12
- Accept-Encoding:
13
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
- Accept:
15
- - "*/*"
16
- Content-Type:
17
- - application/json
18
- Authorization:
19
- - Bearer cGUN-vBokevBhhzyA669
20
- response:
21
- status:
22
- code: 202
23
- message: Accepted
24
- headers:
25
- X-Frame-Options:
26
- - SAMEORIGIN
27
- X-Xss-Protection:
28
- - 1; mode=block
29
- X-Content-Type-Options:
30
- - nosniff
31
- Content-Type:
32
- - application/json; charset=utf-8
33
- Cache-Control:
34
- - no-cache
35
- Set-Cookie:
36
- - _st_main_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFVEkiJWE4NGIxMjQ0YjgzNzYwOWU2NzljZGYyMjkwYzM2ODA4BjsAVA%3D%3D--d0ca869176aa0b9f3d57baf66152897d305fabae;
37
- path=/; expires=Mon, 05 Jul 2027 17:52:09 -0000; HttpOnly
38
- X-Request-Id:
39
- - '09b779a9-1704-46e7-991d-9e92e67b0001'
40
- X-Runtime:
41
- - '0.115497'
42
- Connection:
43
- - close
44
- Server:
45
- - thin 1.5.0 codename Knife
46
- body:
47
- encoding: UTF-8
48
- string: '[{"id":null,"id":"1234","errors":[]},{"id":null,"id":"1235","errors":[]}]'
49
- http_version:
50
- recorded_at: Wed, 05 Jul 2017 17:52:09 GMT
51
- recorded_with: VCR 3.0.3
@@ -1,51 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: post
5
- uri: http://localhost:3002/api/v1/ent/sources/59542d332139de0acacc7dd4/documents/bulk_destroy.json
6
- body:
7
- encoding: UTF-8
8
- string: '["INscMGmhmX4"]'
9
- headers:
10
- Accept-Encoding:
11
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
- Accept:
13
- - "*/*"
14
- Content-Type:
15
- - application/json
16
- Authorization:
17
- - Bearer cGUN-vBokevBhhzyA669
18
- response:
19
- status:
20
- code: 200
21
- message: OK
22
- headers:
23
- X-Frame-Options:
24
- - SAMEORIGIN
25
- X-Xss-Protection:
26
- - 1; mode=block
27
- X-Content-Type-Options:
28
- - nosniff
29
- Content-Type:
30
- - application/json; charset=utf-8
31
- Etag:
32
- - W/"ab494a471abdde82a270b9d9562b7bb9"
33
- Cache-Control:
34
- - max-age=0, private, must-revalidate
35
- Set-Cookie:
36
- - _st_main_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFVEkiJTQ5ZGE4NjY4ZjZmY2Q2OTM2MGM0OTIyMDFkNmRmMzFlBjsAVA%3D%3D--75e0f9002e5f32100e4814a9dc015ffd43a5b6eb;
37
- path=/; expires=Mon, 05 Jul 2027 17:52:12 -0000; HttpOnly
38
- X-Request-Id:
39
- - ec1754ea-5fa3-474f-87ba-e754e4c62553
40
- X-Runtime:
41
- - '1.367282'
42
- Connection:
43
- - close
44
- Server:
45
- - thin 1.5.0 codename Knife
46
- body:
47
- encoding: UTF-8
48
- string: '[{"id":"INscMGmhmX4","success":true}]'
49
- http_version:
50
- recorded_at: Wed, 05 Jul 2017 17:52:12 GMT
51
- recorded_with: VCR 3.0.3