diff --git a/app/controllers/api/v1/query_doc_pairs_controller.rb b/app/controllers/api/v1/query_doc_pairs_controller.rb
index 55a3a199e..a89d75921 100644
--- a/app/controllers/api/v1/query_doc_pairs_controller.rb
+++ b/app/controllers/api/v1/query_doc_pairs_controller.rb
@@ -47,11 +47,14 @@ def create
@query_doc_pair = @book.query_doc_pairs.find_or_create_by query_text: params[:query_doc_pair][:query_text],
doc_id: params[:query_doc_pair][:doc_id]
- @query_doc_pair.position = params[:query_doc_pair][:position] unless params[:query_doc_pair][:position].nil?
- unless params[:query_doc_pair][:document_fields].nil?
- @query_doc_pair.document_fields = params[:query_doc_pair][:document_fields].to_json
- end
- if @query_doc_pair.save
+ # @query_doc_pair.position = params[:query_doc_pair][:position] unless params[:query_doc_pair][:position].nil?
+ # unless params[:query_doc_pair][:document_fields].nil?
+ # @query_doc_pair.document_fields = params[:query_doc_pair][:document_fields]
+ # end
+ # if @query_doc_pair.save
+
+ update_params = query_doc_pair_params
+ if @query_doc_pair.update update_params
respond_with @query_doc_pair
else
render json: @query_doc_pair.errors, status: :bad_request
@@ -86,7 +89,8 @@ def destroy
private
def query_doc_pair_params
- params.require(:query_doc_pair).permit(:document_fields, :position, :query_text, :doc_id)
+ params.require(:query_doc_pair).permit(:document_fields, :position, :query_text, :doc_id, :notes,
+ :information_need, options: {})
end
def set_query_doc_pair
diff --git a/app/views/api/v1/query_doc_pairs/index.json.jbuilder b/app/views/api/v1/query_doc_pairs/index.json.jbuilder
index 175ba7829..4790440c4 100644
--- a/app/views/api/v1/query_doc_pairs/index.json.jbuilder
+++ b/app/views/api/v1/query_doc_pairs/index.json.jbuilder
@@ -1,5 +1,5 @@
# frozen_string_literal: true
-json.all_query_doc_pairs do
+json.query_doc_pairs do
json.array! @query_doc_pairs, partial: 'query_doc_pair', as: :query_doc_pair, locals: {}
end
diff --git a/app/views/layouts/_header.html.erb b/app/views/layouts/_header.html.erb
index 296077334..9621e68a8 100644
--- a/app/views/layouts/_header.html.erb
+++ b/app/views/layouts/_header.html.erb
@@ -75,6 +75,7 @@
<%= link_to 'Log out', logout_path, class: 'dropdown-item', target: '_self' %>
<%= link_to 'Judgements', books_path, class: 'dropdown-item', target: '_self' %>
+ <%= link_to 'API Docs', apipie_apipie_path, class: 'dropdown-item', target: '_self' %>
<% if current_user.administrator? %>
<%= link_to 'Admin Home', admin_path, class: 'dropdown-item', target: '_self' %>
diff --git a/app/views/layouts/_header_core_app.html.erb b/app/views/layouts/_header_core_app.html.erb
index ffef2d4bd..1ffdabeb1 100644
--- a/app/views/layouts/_header_core_app.html.erb
+++ b/app/views/layouts/_header_core_app.html.erb
@@ -60,6 +60,7 @@
<%= link_to 'Log out', logout_path, class: 'dropdown-link', target: '_self' %>
<%= link_to 'Judgements', books_path, class: 'dropdown-link', target: '_self' %>
+ <%= link_to 'API Docs', apipie_apipie_path, class: 'dropdown-item', target: '_self' %>
<% if current_user.administrator? %>
<%= link_to 'Admin Home', admin_path, class: 'dropdown-link', target: '_self' %>
diff --git a/test/controllers/api/v1/query_doc_pairs_controller_test.rb b/test/controllers/api/v1/query_doc_pairs_controller_test.rb
index 5c7ecd472..b9997c994 100644
--- a/test/controllers/api/v1/query_doc_pairs_controller_test.rb
+++ b/test/controllers/api/v1/query_doc_pairs_controller_test.rb
@@ -32,12 +32,15 @@ class QueryDocPairsControllerTest < ActionController::TestCase
position: qdp.position,
query_text: qdp.query_text,
doc_id: qdp.doc_id,
+ options: qdp.options,
} }
assert_response :ok
- assert_equal response.parsed_body['doc_id'], qdp.doc_id
assert_equal book.query_doc_pairs.count, count + 1
+
+ assert_equal response.parsed_body['doc_id'], qdp.doc_id
+ assert_equal response.parsed_body['options']['special_boost'].to_f, qdp.options['special_boost']
end
test 'requires a query text' do
diff --git a/test/fixtures/query_doc_pairs.yml b/test/fixtures/query_doc_pairs.yml
index 59e7a4428..5f4f77ac5 100644
--- a/test/fixtures/query_doc_pairs.yml
+++ b/test/fixtures/query_doc_pairs.yml
@@ -30,56 +30,57 @@ one:
query_text: MyString
position: 1
doc_id: "MyDocA"
- document_fields: MyText
+ document_fields: '{"title":"MyText"}'
book: one
+ options: '{"special_boost": 3.2}'
two:
query_text: MyString
position: 2
doc_id: "MyDocB"
- document_fields: MyText
+ document_fields: '{"title":"MyText"}'
book: two
jbm_qdp1:
query_text: Best Bond Ever
position: 1
doc_id: SeanConnery
- document_fields: MyTex
+ document_fields: '{"title":"MyText"}'
book: :james_bond_movies
jbm_qdp2:
query_text: Best Bond Ever
position: 2
doc_id: DanielCraig
- document_fields: MyTex
+ document_fields: '{"title":"MyText"}'
book: :james_bond_movies
jbm_qdp3:
query_text: Best Bond Ever
position: 3
doc_id: TimothyDalton
- document_fields: MyTex
+ document_fields: '{"title":"MyText"}'
book: :james_bond_movies
jbm_qdp4:
query_text: Best Bond Ever
position: 4
doc_id: RogerMoore
- document_fields: MyTex
+ document_fields: '{"title":"MyText"}'
book: :james_bond_movies
jbm_qdp5:
query_text: Best Bond Ever
position: 5
doc_id: PierceBrosnan
- document_fields: MyTex
+ document_fields: '{"title":"MyText"}'
book: :james_bond_movies
jbm_qdp6:
query_text: Best Bond Ever
position: 6
doc_id: GeorgeLazenby
- document_fields: MyTex
+ document_fields: '{"title":"MyText"}'
book: :james_bond_movies
jbm_qdp10:
@@ -93,14 +94,14 @@ starwars_qdp1:
query_text: Han
position: 1
doc_id: Han Solo-A Star Wars Story
- document_fields: MyTex
+ document_fields: '{"title":"Han Solo-A Star Wars Story"}'
book: :book_of_star_wars_judgements
starwars_qdp2:
query_text: Han
position: 2
doc_id: Star Wars The Movie
- document_fields: MyTex
+ document_fields: '{"title":"Star Wars The Movie"}'
book: :book_of_star_wars_judgements
# This query doc pair overlaps with starwars_qdp2, to test merging books.
@@ -108,5 +109,5 @@ book_of_comedy_qdp1:
query_text: Han
position: 1
doc_id: Star Wars The Movie
- document_fields: MyTex
+ document_fields: '{"title":"Star Wars The Movie"}'
book: :book_of_comedy_films