bento_search 1.4.4 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +41 -19
- data/app/models/bento_search/result_item.rb +1 -1
- data/app/models/bento_search/search_engine.rb +36 -3
- data/app/models/bento_search/search_engine/capabilities.rb +14 -0
- data/app/search_engines/bento_search/doaj_articles_engine.rb +279 -0
- data/app/search_engines/bento_search/ebsco_host_engine.rb +27 -7
- data/app/search_engines/bento_search/google_books_engine.rb +8 -1
- data/app/search_engines/bento_search/mock_engine.rb +8 -2
- data/app/search_engines/bento_search/scopus_engine.rb +27 -8
- data/app/search_engines/bento_search/summon_engine.rb +1 -1
- data/app/search_engines/bento_search/worldcat_sru_dc_engine.rb +22 -3
- data/config/locales/en.yml +5 -2
- data/lib/bento_search/version.rb +1 -1
- data/test/dummy/config/environments/development.rb +0 -4
- data/test/dummy/config/environments/production.rb +0 -4
- data/test/search_engines/doaj_articles_engine_test.rb +200 -0
- data/test/search_engines/ebsco_host_engine_test.rb +38 -0
- data/test/search_engines/google_books_engine_test.rb +18 -2
- data/test/search_engines/scopus_engine_test.rb +45 -1
- data/test/search_engines/search_engine_base_test.rb +59 -0
- data/test/search_engines/worldcat_sru_dc_engine_test.rb +17 -0
- data/test/vcr_cassettes/doaj_articles/basic_search.yml +97 -0
- data/test/vcr_cassettes/doaj_articles/catches_errors.yml +42 -0
- data/test/vcr_cassettes/doaj_articles/complex_multi-field.yml +67 -0
- data/test/vcr_cassettes/doaj_articles/live__get_identifier__round_trip.yml +387 -0
- data/test/vcr_cassettes/doaj_articles/live_get_identifier__raises_on_no_results.yml +41 -0
- data/test/vcr_cassettes/doaj_articles/multifield_author-title.yml +79 -0
- data/test/vcr_cassettes/doaj_articles/pagination.yml +691 -0
- data/test/vcr_cassettes/ebscohost/affiliation_search.yml +929 -0
- data/test/vcr_cassettes/ebscohost/multi-field_author_title.yml +122 -0
- data/test/vcr_cassettes/ebscohost/multi-field_citation_numbers.yml +122 -0
- data/test/vcr_cassettes/scopus/multi-field_search.yml +55 -0
- data/test/vcr_cassettes/scopus/multi-fielded_citation_details_search.yml +86 -0
- data/test/vcr_cassettes/worldcat_sru_dc/multi_field_search.yml +1839 -0
- metadata +31 -2
|
@@ -310,6 +310,36 @@ class EbscoHostEngineTest < ActiveSupport::TestCase
|
|
|
310
310
|
end
|
|
311
311
|
end
|
|
312
312
|
|
|
313
|
+
test_with_cassette("multi-field author title", :ebscohost) do
|
|
314
|
+
results = @engine.search(:query => {:title => '"Reflections on the History of Debt Resistance"',
|
|
315
|
+
:author => "Caffentzis"})
|
|
316
|
+
|
|
317
|
+
assert ! results.failed?
|
|
318
|
+
|
|
319
|
+
assert_equal 1, results.total_items
|
|
320
|
+
|
|
321
|
+
result = results.first
|
|
322
|
+
|
|
323
|
+
assert_equal "10.1215/00382876-2345315", result.doi
|
|
324
|
+
end
|
|
325
|
+
|
|
326
|
+
test_with_cassette("multi-field citation numbers", :ebscohost) do
|
|
327
|
+
results = @engine.search(:query => {
|
|
328
|
+
:issn => "00382876",
|
|
329
|
+
:volume => "112",
|
|
330
|
+
:issue => "4",
|
|
331
|
+
:start_page => "824"
|
|
332
|
+
})
|
|
333
|
+
|
|
334
|
+
assert ! results.failed?
|
|
335
|
+
|
|
336
|
+
assert_equal 1, results.total_items
|
|
337
|
+
|
|
338
|
+
result = results.first
|
|
339
|
+
|
|
340
|
+
assert_equal "10.1215/00382876-2345315", result.doi
|
|
341
|
+
end
|
|
342
|
+
|
|
313
343
|
|
|
314
344
|
test("illegal arg for get with id with no colon") do
|
|
315
345
|
assert_raise ArgumentError do
|
|
@@ -328,6 +358,14 @@ class EbscoHostEngineTest < ActiveSupport::TestCase
|
|
|
328
358
|
assert_present first.issn
|
|
329
359
|
end
|
|
330
360
|
|
|
361
|
+
test_with_cassette("affiliation search", :ebscohost) do
|
|
362
|
+
results = @engine.search('"johns hopkins"', :semantic_search_field => :author_affiliation)
|
|
363
|
+
|
|
364
|
+
assert ! results.failed?
|
|
365
|
+
|
|
366
|
+
assert_present results
|
|
367
|
+
end
|
|
368
|
+
|
|
331
369
|
|
|
332
370
|
|
|
333
371
|
end
|
|
@@ -122,8 +122,24 @@ class GoogleBooksEngineTest < ActiveSupport::TestCase
|
|
|
122
122
|
|
|
123
123
|
query_params = CGI.parse( URI.parse(url).query )
|
|
124
124
|
|
|
125
|
-
assert_match
|
|
126
|
-
assert_match
|
|
125
|
+
assert_match /(^|\s)intitle\:cancer(\s|$)/, query_params["q"].first
|
|
126
|
+
assert_match /(^|\s)intitle\:"by radiation"(\s|$)/, query_params["q"].first
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
def test_multi_search
|
|
130
|
+
# Have to use protected methods to get at what we want to test.
|
|
131
|
+
# Is there a better way to factor this for testing?
|
|
132
|
+
norm_args = @engine.send(:parse_search_arguments,
|
|
133
|
+
:query => {:title => "manufacturing consent", :author => "chomsky", "inpublisher" => "something"}
|
|
134
|
+
)
|
|
135
|
+
url = @engine.send(:args_to_search_url, norm_args)
|
|
136
|
+
|
|
137
|
+
query_params = CGI.parse( URI.parse(url).query )
|
|
138
|
+
|
|
139
|
+
assert_match /(^|\s)intitle\:manufacturing(\s|$)/, query_params["q"].first
|
|
140
|
+
assert_match /(^|\s)intitle\:consent(\s|$)/, query_params["q"].first
|
|
141
|
+
assert_match /(^|\s)inauthor\:chomsky(\s|$)/, query_params["q"].first
|
|
142
|
+
assert_match /(^|\s)inpublisher\:something(\s|$)/, query_params["q"].first
|
|
127
143
|
end
|
|
128
144
|
|
|
129
145
|
|
|
@@ -32,6 +32,20 @@ class ScopusEngineTest < ActiveSupport::TestCase
|
|
|
32
32
|
|
|
33
33
|
assert_equal "http://api.elsevier.com/content/search/index:SCOPUS?query=AUTH%28one+two%29&sort=refeid", url
|
|
34
34
|
end
|
|
35
|
+
|
|
36
|
+
def test_construct_multi_field
|
|
37
|
+
url = @engine.send(:scopus_url, :query => {"TITLE" => "Terrible Diseases", "AUTH" => "John Smith"})
|
|
38
|
+
|
|
39
|
+
url = URI.parse(url)
|
|
40
|
+
params = CGI.parse(url.query)
|
|
41
|
+
scopus_query = params["query"].first
|
|
42
|
+
|
|
43
|
+
query_components = scopus_query.split(" AND ")
|
|
44
|
+
|
|
45
|
+
assert_equal 2, query_components.length
|
|
46
|
+
assert_includes query_components, "AUTH(John Smith)"
|
|
47
|
+
assert_includes query_components, "TITLE(Terrible Diseases)"
|
|
48
|
+
end
|
|
35
49
|
|
|
36
50
|
def test_construct_search_with_per_page
|
|
37
51
|
url = @engine.send(:scopus_url, :query => "one two", :per_page => 30)
|
|
@@ -129,7 +143,37 @@ class ScopusEngineTest < ActiveSupport::TestCase
|
|
|
129
143
|
assert results.first.title.downcase.include?("cancer"), "Title includes query term"
|
|
130
144
|
end
|
|
131
145
|
|
|
132
|
-
|
|
146
|
+
test_with_cassette("multi-field search", :scopus) do
|
|
147
|
+
results = @engine.search(:query =>
|
|
148
|
+
{ :title => "Protein measurement with the folin phenol reagent",
|
|
149
|
+
:author => "Lowry",
|
|
150
|
+
:issn => "0021-9258"
|
|
151
|
+
})
|
|
152
|
+
|
|
153
|
+
assert ! results.failed?
|
|
154
|
+
assert_present results
|
|
155
|
+
|
|
156
|
+
results.each do |result|
|
|
157
|
+
assert_equal "00219258", result.issn
|
|
158
|
+
assert_includes result.title.downcase, "Protein measurement with the folin phenol reagent".downcase
|
|
159
|
+
end
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
test_with_cassette("multi-fielded citation details search", :scopus) do
|
|
163
|
+
results = @engine.search(:query =>{
|
|
164
|
+
:issn => "15385132",
|
|
165
|
+
:volume => "12",
|
|
166
|
+
:issue => "2",
|
|
167
|
+
:start_page => "179"
|
|
168
|
+
})
|
|
169
|
+
|
|
170
|
+
assert ! results.failed?
|
|
171
|
+
assert_equal 1, results.total_items
|
|
172
|
+
|
|
173
|
+
item = results.first
|
|
174
|
+
|
|
175
|
+
assert item.title.start_with?("Architects and planners in the middle of a road war")
|
|
176
|
+
end
|
|
133
177
|
|
|
134
178
|
|
|
135
179
|
end
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
require 'test_helper'
|
|
2
2
|
|
|
3
3
|
class ParseSearchArgumentsTest < ActiveSupport::TestCase
|
|
4
|
+
MockEngine = BentoSearch::MockEngine
|
|
5
|
+
|
|
4
6
|
class Dummy
|
|
5
7
|
include BentoSearch::SearchEngine
|
|
6
8
|
|
|
@@ -153,6 +155,63 @@ class ParseSearchArgumentsTest < ActiveSupport::TestCase
|
|
|
153
155
|
end
|
|
154
156
|
|
|
155
157
|
end
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
describe "multi-field search" do
|
|
161
|
+
it "complains with multi-query and search_field" do
|
|
162
|
+
engine = MockEngine.new(:multi_field_search => true)
|
|
163
|
+
assert_raises(ArgumentError) { engine.search(:query => {:title => "foo"}, :semantic_search_field => :author)}
|
|
164
|
+
assert_raises(ArgumentError) { engine.search(:query => {:title => "foo"}, :search_field => "something")}
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
it "rejects if search engine does not support" do
|
|
168
|
+
engine = MockEngine.new(:multi_field_search => false)
|
|
169
|
+
assert_raises(ArgumentError) { engine.search(:query => {:title => "title", :author => "author"}) }
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
it "converts semantic search fields" do
|
|
173
|
+
engine = MockEngine.new(:multi_field_search => true,
|
|
174
|
+
:search_field_definitions => {
|
|
175
|
+
"internal_title_field" => {:semantic => :title},
|
|
176
|
+
"internal_author_field" => {:semantic => :author}
|
|
177
|
+
})
|
|
178
|
+
|
|
179
|
+
engine.search(:query => {:title => "title query", :author => "author query"})
|
|
180
|
+
|
|
181
|
+
assert_equal(
|
|
182
|
+
{ "internal_title_field" => "title query",
|
|
183
|
+
"internal_author_field" => "author query"},
|
|
184
|
+
engine.last_args[:query]
|
|
185
|
+
)
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
it "passes through other fields" do
|
|
189
|
+
engine = MockEngine.new(:multi_field_search => true,
|
|
190
|
+
:search_field_definitions => {
|
|
191
|
+
"internal_title_field" => {:semantic => :title},
|
|
192
|
+
"internal_author_field" => {:semantic => :author}
|
|
193
|
+
})
|
|
194
|
+
|
|
195
|
+
engine.search(:query => {"internal_title_field" => "query", "other field" => "query"})
|
|
196
|
+
|
|
197
|
+
assert_equal(
|
|
198
|
+
{"internal_title_field" => "query", "other field" => "query"},
|
|
199
|
+
engine.last_args[:query]
|
|
200
|
+
)
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
it "complains on unrecognized field if configured" do
|
|
204
|
+
engine = MockEngine.new(:multi_field_search => true,
|
|
205
|
+
:unrecognized_search_field => "raise",
|
|
206
|
+
:search_field_definitions => {
|
|
207
|
+
"internal_title_field" => {:semantic => :title},
|
|
208
|
+
"internal_author_field" => {:semantic => :author}
|
|
209
|
+
})
|
|
210
|
+
assert_raises(ArgumentError) do
|
|
211
|
+
engine.search(:query => {"internal_title_field" => "query", "other field" => "query"})
|
|
212
|
+
end
|
|
213
|
+
end
|
|
214
|
+
end
|
|
156
215
|
|
|
157
216
|
def test_semantic_blank_ignored
|
|
158
217
|
d = Dummy.new
|
|
@@ -93,6 +93,18 @@ class WorldcatSruDcEngineTest < ActiveSupport::TestCase
|
|
|
93
93
|
assert_includes components, clause
|
|
94
94
|
end
|
|
95
95
|
end
|
|
96
|
+
|
|
97
|
+
def test_construt_cql_multi_field
|
|
98
|
+
cql = @engine.construct_cql_query(:query => {"srw.ti" => "manufacturing", "srw.au" => "chomsky"})
|
|
99
|
+
|
|
100
|
+
components = cql.split(" AND ")
|
|
101
|
+
|
|
102
|
+
assert_equal 2, components.length
|
|
103
|
+
|
|
104
|
+
['srw.au = "chomsky"', 'srw.ti = "manufacturing"'].each do |clause|
|
|
105
|
+
assert_includes components, clause
|
|
106
|
+
end
|
|
107
|
+
end
|
|
96
108
|
|
|
97
109
|
test_with_cassette("max_out_pagination", :worldcat_sru_dc) do
|
|
98
110
|
#worldcat maxes out at start 9999, we silently correct
|
|
@@ -146,6 +158,11 @@ class WorldcatSruDcEngineTest < ActiveSupport::TestCase
|
|
|
146
158
|
@engine.get("NOT EXISTING")
|
|
147
159
|
end
|
|
148
160
|
end
|
|
161
|
+
|
|
162
|
+
test_with_cassette("multi field search", :worldcat_sru_dc) do
|
|
163
|
+
results = @engine.search(:query => {:author => "Chomsky", :title => "Manufacturing"})
|
|
164
|
+
assert ! results.failed?
|
|
165
|
+
end
|
|
149
166
|
|
|
150
167
|
|
|
151
168
|
end
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
http_interactions:
|
|
3
|
+
- request:
|
|
4
|
+
method: get
|
|
5
|
+
uri: https://doaj.org/api/v1/search/articles/+Breast%20+cancer%20+patients%20+with%20+lobular%20+cancer%20+more%20+commonly%20+have%20+a%20+father%20+than%20+a%20+mother%20+diagnosed%20+with%20+cancer?pageSize=10
|
|
6
|
+
body:
|
|
7
|
+
encoding: UTF-8
|
|
8
|
+
string: ''
|
|
9
|
+
headers:
|
|
10
|
+
Cookie:
|
|
11
|
+
- session=UspzkET/3IS3Z8PIxKnLAhLnXDY=?_id=UycyNmYyZmZkMzhkMjA5MWE0NmNjZTU2YTI4OGJjNDZlNycKcDEKLg==
|
|
12
|
+
response:
|
|
13
|
+
status:
|
|
14
|
+
code: 200
|
|
15
|
+
message: OK
|
|
16
|
+
headers:
|
|
17
|
+
Server:
|
|
18
|
+
- nginx/1.4.6 (Ubuntu)
|
|
19
|
+
Date:
|
|
20
|
+
- Wed, 23 Sep 2015 15:51:24 GMT
|
|
21
|
+
Content-Type:
|
|
22
|
+
- application/json
|
|
23
|
+
Content-Length:
|
|
24
|
+
- '4515'
|
|
25
|
+
Connection:
|
|
26
|
+
- keep-alive
|
|
27
|
+
Vary:
|
|
28
|
+
- Accept-Encoding
|
|
29
|
+
- Accept-Encoding
|
|
30
|
+
Access-Control-Allow-Origin:
|
|
31
|
+
- "*"
|
|
32
|
+
Set-Cookie:
|
|
33
|
+
- session="UspzkET/3IS3Z8PIxKnLAhLnXDY=?_id=UycyNmYyZmZkMzhkMjA5MWE0NmNjZTU2YTI4OGJjNDZlNycKcDEKLg==";
|
|
34
|
+
Path=/; HttpOnly
|
|
35
|
+
body:
|
|
36
|
+
encoding: UTF-8
|
|
37
|
+
string: '{"pageSize": 10, "timestamp": "2015-0923T15:51:24Z", "results": [{"last_updated":
|
|
38
|
+
"2015-04-22T03:59:29Z", "id": "c7cbb0516de24de2bdcfb3d81a40ab1b", "bibjson":
|
|
39
|
+
{"start_page": "497", "title": "Breast cancer patients with lobular cancer
|
|
40
|
+
more commonly have a father than a mother diagnosed with cancer", "journal":
|
|
41
|
+
{"publisher": "BioMed Central", "language": ["English"], "license": [{"type":
|
|
42
|
+
"CC BY", "title": "CC BY"}], "title": "BMC Cancer", "country": "GB", "number":
|
|
43
|
+
"1", "volume": "11"}, "author": [{"name": "Ellberg Carolina"}, {"name": "Olsson
|
|
44
|
+
H\u00e5kan"}], "month": "11", "link": [{"url": "http://www.biomedcentral.com/1471-2407/11/497",
|
|
45
|
+
"type": "fulltext"}], "year": "2011", "identifier": [{"type": "doi", "id":
|
|
46
|
+
"10.1186/1471-2407-11-497"}, {"type": "pissn", "id": "1471-2407"}], "abstract":
|
|
47
|
+
"<p>Abstract</p> <p>Background</p> <p>The association between lobular breast
|
|
48
|
+
cancer and family history is not clear. The aim of the study was to possibly
|
|
49
|
+
identifying new hereditary patterns predisposing for cancer in the different
|
|
50
|
+
histopathologic subtypes of breast cancer, with focus on patients with lobular
|
|
51
|
+
breast cancer and cancer in their first degree relatives.</p> <p>Methods</p>
|
|
52
|
+
<p>In 1676 consecutive breast cancer patients detailed family history of cancer
|
|
53
|
+
was related to histopathologic subtype of breast cancer.</p> <p>Results</p>
|
|
54
|
+
<p>Patients with lobular breast cancer were found to be significantly positively
|
|
55
|
+
associated with having a father diagnosed with cancer, OR 2.17 (95% confidence
|
|
56
|
+
interval (CI) 1.37-3.46). The finding persisted after excluding breast cancer
|
|
57
|
+
in the family. Ductal breast cancer was associated with having a mother diagnosed
|
|
58
|
+
with cancer. There was a significant association between lobular breast cancer
|
|
59
|
+
and having a father with prostate cancer, OR 2.4 (CI 1.1-5.3). The occurrence
|
|
60
|
+
of having a father with prostate cancer for lobular breast cancer patients
|
|
61
|
+
was higher in the younger patient group, OR 2.9 (CI 1.1-7.8), and was still
|
|
62
|
+
high but lost statistical significance in the older patient group, OR 1.9
|
|
63
|
+
(CI 0.5-7.4). The association between lobular breast cancer and a father remained
|
|
64
|
+
significant after excluding fathers with prostate cancer, OR 1.94 (CI 1.20-3.14).
|
|
65
|
+
Other commonly occurring tumor types in the father included sarcoma and leukemia.</p>
|
|
66
|
+
<p>Conclusion</p> <p>We propose that lobular breast cancer is associated with
|
|
67
|
+
having a father diagnosed with cancer, most commonly prostate carcinoma. Since
|
|
68
|
+
the association remained after excluding family history of breast cancer,
|
|
69
|
+
the association seems independent of classical breast cancer heredity. The
|
|
70
|
+
association with a father diagnosed with cancer also remained after removing
|
|
71
|
+
prostate cancer, indicating an independence from prostate cancer as well.
|
|
72
|
+
The reason for this association is genetically unclear, but could involve
|
|
73
|
+
sex-specific imprinting.</p> ", "subject": [{"code": "RC254-282", "term":
|
|
74
|
+
"Neoplasms. Tumors. Oncology. Including cancer and carcinogens", "scheme":
|
|
75
|
+
"LCC"}, {"code": "RC31-1245", "term": "Internal medicine", "scheme": "LCC"},
|
|
76
|
+
{"code": "R", "term": "Medicine", "scheme": "LCC"}, {"term": "Oncology", "scheme":
|
|
77
|
+
"DOAJ"}, {"term": "Medicine (General)", "scheme": "DOAJ"}, {"term": "Health
|
|
78
|
+
Sciences", "scheme": "DOAJ"}, {"code": "RC254-282", "term": "Neoplasms. Tumors.
|
|
79
|
+
Oncology. Including cancer and carcinogens", "scheme": "LCC"}, {"code": "RC31-1245",
|
|
80
|
+
"term": "Internal medicine", "scheme": "LCC"}, {"code": "R", "term": "Medicine",
|
|
81
|
+
"scheme": "LCC"}, {"term": "Oncology", "scheme": "DOAJ"}, {"term": "Medicine
|
|
82
|
+
(General)", "scheme": "DOAJ"}, {"term": "Health Sciences", "scheme": "DOAJ"},
|
|
83
|
+
{"code": "RC254-282", "term": "Neoplasms. Tumors. Oncology. Including cancer
|
|
84
|
+
and carcinogens", "scheme": "LCC"}, {"code": "RC31-1245", "term": "Internal
|
|
85
|
+
medicine", "scheme": "LCC"}, {"code": "R", "term": "Medicine", "scheme": "LCC"},
|
|
86
|
+
{"code": "RC254-282", "term": "Neoplasms. Tumors. Oncology. Including cancer
|
|
87
|
+
and carcinogens", "scheme": "LCC"}, {"code": "RC31-1245", "term": "Internal
|
|
88
|
+
medicine", "scheme": "LCC"}, {"code": "R", "term": "Medicine", "scheme": "LCC"},
|
|
89
|
+
{"code": "RC254-282", "term": "Neoplasms. Tumors. Oncology. Including cancer
|
|
90
|
+
and carcinogens", "scheme": "LCC"}, {"code": "RC31-1245", "term": "Internal
|
|
91
|
+
medicine", "scheme": "LCC"}, {"code": "R", "term": "Medicine", "scheme": "LCC"}]},
|
|
92
|
+
"created_date": "2013-03-12T01:21:44Z"}], "query": "+Breast +cancer +patients
|
|
93
|
+
+with +lobular +cancer +more +commonly +have +a +father +than +a +mother +diagnosed
|
|
94
|
+
+with +cancer", "total": 1, "page": 1}'
|
|
95
|
+
http_version:
|
|
96
|
+
recorded_at: Wed, 23 Sep 2015 15:51:24 GMT
|
|
97
|
+
recorded_with: VCR 2.9.3
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
http_interactions:
|
|
3
|
+
- request:
|
|
4
|
+
method: get
|
|
5
|
+
uri: https://doaj.org/api/v1/search/articles_bad_url/+something?pageSize=10
|
|
6
|
+
body:
|
|
7
|
+
encoding: UTF-8
|
|
8
|
+
string: ''
|
|
9
|
+
headers:
|
|
10
|
+
Cookie:
|
|
11
|
+
- session=UspzkET/3IS3Z8PIxKnLAhLnXDY=?_id=UycyNmYyZmZkMzhkMjA5MWE0NmNjZTU2YTI4OGJjNDZlNycKcDEKLg==
|
|
12
|
+
response:
|
|
13
|
+
status:
|
|
14
|
+
code: 404
|
|
15
|
+
message: NOT FOUND
|
|
16
|
+
headers:
|
|
17
|
+
Server:
|
|
18
|
+
- nginx/1.4.6 (Ubuntu)
|
|
19
|
+
Date:
|
|
20
|
+
- Wed, 23 Sep 2015 15:51:26 GMT
|
|
21
|
+
Content-Type:
|
|
22
|
+
- application/json
|
|
23
|
+
Content-Length:
|
|
24
|
+
- '246'
|
|
25
|
+
Connection:
|
|
26
|
+
- keep-alive
|
|
27
|
+
Vary:
|
|
28
|
+
- Accept-Encoding
|
|
29
|
+
- Accept-Encoding
|
|
30
|
+
Access-Control-Allow-Origin:
|
|
31
|
+
- "*"
|
|
32
|
+
Set-Cookie:
|
|
33
|
+
- session="UspzkET/3IS3Z8PIxKnLAhLnXDY=?_id=UycyNmYyZmZkMzhkMjA5MWE0NmNjZTU2YTI4OGJjNDZlNycKcDEKLg==";
|
|
34
|
+
Path=/; HttpOnly
|
|
35
|
+
body:
|
|
36
|
+
encoding: UTF-8
|
|
37
|
+
string: '{"status": "not_found", "error": "No endpoint at search/articles_bad_url/+something.
|
|
38
|
+
See https://doaj.org/api/v1/swagger.json for valid paths or read the documentation
|
|
39
|
+
at https://doaj.org/api/v1/docs. (ref: f2b2e3d2-620a-11e5-b4d0-04014a62b401)"}'
|
|
40
|
+
http_version:
|
|
41
|
+
recorded_at: Wed, 23 Sep 2015 15:51:26 GMT
|
|
42
|
+
recorded_with: VCR 2.9.3
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
http_interactions:
|
|
3
|
+
- request:
|
|
4
|
+
method: get
|
|
5
|
+
uri: https://doaj.org/api/v1/search/articles/+Anti%5C-war%20+bibjson.author.name:(+Caffentzis)%20+bibjson.title:(+%22Respect%20Your%20Enemies%22%20+first%20+rule%20+of%20+peace)%20+bibjson.journal.title:(+%22Revista%20Theomai%22)?pageSize=10
|
|
6
|
+
body:
|
|
7
|
+
encoding: UTF-8
|
|
8
|
+
string: ''
|
|
9
|
+
headers: {}
|
|
10
|
+
response:
|
|
11
|
+
status:
|
|
12
|
+
code: 200
|
|
13
|
+
message: OK
|
|
14
|
+
headers:
|
|
15
|
+
Server:
|
|
16
|
+
- nginx/1.4.6 (Ubuntu)
|
|
17
|
+
Date:
|
|
18
|
+
- Wed, 23 Sep 2015 15:58:02 GMT
|
|
19
|
+
Content-Type:
|
|
20
|
+
- application/json
|
|
21
|
+
Content-Length:
|
|
22
|
+
- '2314'
|
|
23
|
+
Connection:
|
|
24
|
+
- keep-alive
|
|
25
|
+
Vary:
|
|
26
|
+
- Accept-Encoding
|
|
27
|
+
- Accept-Encoding
|
|
28
|
+
Access-Control-Allow-Origin:
|
|
29
|
+
- "*"
|
|
30
|
+
Set-Cookie:
|
|
31
|
+
- session="UspzkET/3IS3Z8PIxKnLAhLnXDY=?_id=UycyNmYyZmZkMzhkMjA5MWE0NmNjZTU2YTI4OGJjNDZlNycKcDEKLg==";
|
|
32
|
+
Path=/; HttpOnly
|
|
33
|
+
body:
|
|
34
|
+
encoding: UTF-8
|
|
35
|
+
string: '{"pageSize": 10, "timestamp": "2015-0923T15:58:02Z", "results": [{"last_updated":
|
|
36
|
+
"2015-09-18T18:30:31Z", "id": "3de5b56aa21342f6adb2d313c16c6c63", "bibjson":
|
|
37
|
+
{"start_page": "0", "title": "Respect Your Enemies - The First Rule of Peace:
|
|
38
|
+
An Essay Addressed to the U. S. Anti-war Movement", "journal": {"country":
|
|
39
|
+
"AR", "publisher": "Red Internacional de Estudios sobre Sociedad, Naturaleza
|
|
40
|
+
y Desarrollo", "number": "7", "language": ["Spanish", "English", "French",
|
|
41
|
+
"Italian", "Portuguese"], "title": "Revista Theomai"}, "author": [{"name":
|
|
42
|
+
"George Caffentzis"}], "link": [{"url": "http://www.redalyc.org/articulo.oa?id=12400710",
|
|
43
|
+
"type": "fulltext", "content_type": "pdf"}], "year": "2003", "identifier":
|
|
44
|
+
[{"type": "pissn", "id": "1666-2830"}, {"type": "eissn", "id": "1515-6443"}],
|
|
45
|
+
"abstract": "There is now a fledgling anti-interventionist, anti-war movement
|
|
46
|
+
in the US. It will have a lot of work to do in the near future, although the
|
|
47
|
+
present threat of war on Iraq is the most pressing issue it faces. The question
|
|
48
|
+
is: can the antiwar movement do its work effectively and successfully? At
|
|
49
|
+
the moment it is not completely marginalized, if the votes in Congress are
|
|
50
|
+
any indication. On October 9, between one-quarter to one-third of the congressional
|
|
51
|
+
representatives voted against granting George W. Bush \"war powers.\" But
|
|
52
|
+
in order to show itself as expressing the majority perspective in this country,
|
|
53
|
+
it needs new arguments, a new respect (as in \"look again\") for its opponents,
|
|
54
|
+
a deeper understanding of the reasons for the actions of its opponents, and
|
|
55
|
+
a realistic assessment of their weaknesses. For its old arguments do not seem
|
|
56
|
+
convincing to the majority of US citizens, and its lack of curiosity about
|
|
57
|
+
its opponents and their reasoning is dulling its strategic sense.", "subject":
|
|
58
|
+
[{"code": "H1-99", "term": "Social sciences (General)", "scheme": "LCC"},
|
|
59
|
+
{"code": "H", "term": "Social Sciences", "scheme": "LCC"}, {"code": "GE1-350",
|
|
60
|
+
"term": "Environmental sciences", "scheme": "LCC"}, {"code": "G", "term":
|
|
61
|
+
"Geography. Anthropology. Recreation", "scheme": "LCC"}]}, "created_date":
|
|
62
|
+
"2012-03-28T00:03:02Z"}], "query": "+Anti\\-war +bibjson.author.name:(+Caffentzis)
|
|
63
|
+
+bibjson.title:(+\"Respect Your Enemies\" +first +rule +of +peace) +bibjson.journal.title:(+\"Revista
|
|
64
|
+
Theomai\")", "total": 1, "page": 1}'
|
|
65
|
+
http_version:
|
|
66
|
+
recorded_at: Wed, 23 Sep 2015 15:58:02 GMT
|
|
67
|
+
recorded_with: VCR 2.9.3
|