diff --git a/app/controllers/lookup_controller.rb b/app/controllers/lookup_controller.rb new file mode 100644 index 00000000..35674b5c --- /dev/null +++ b/app/controllers/lookup_controller.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +## +# Controller to lookup MARC records based on standard numbers (e.g. ISBN) +class LookupController < ApplicationController + skip_authorization_check + + def index + return {} if index_params[:isbn].blank? + + @response = grouped_marc_records + end + + def index_params + params.permit(:isbn) + end + helper_method :index_params + + private + + def grouped_marc_records + MarcRecord.includes(:organization).where(isbn: index_params[:isbn]).group_by(&:organization).select do |org, _| + can? :read, org + end + end +end diff --git a/app/views/lookup/index.html.erb b/app/views/lookup/index.html.erb new file mode 100644 index 00000000..182c7af3 --- /dev/null +++ b/app/views/lookup/index.html.erb @@ -0,0 +1,31 @@ +
marc001 | +Stream | +Download | +
---|---|---|
<%= organization.name %> | +||
<%= marc_record.marc001 %> | +<%= link_to(marc_record.stream.display_name, organization_stream_path(organization, marc_record.stream)) %> | +<%= link_to('marc21', marc21_organization_marc_record_url(organization, marc_record)) %>, <%= link_to('marcxml', marcxml_organization_marc_record_url(organization, marc_record)) %> | +