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