base_indexer 2.0.0 → 3.0.0.pre1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7d970b5ac2c8deb027d2b9d58c1f42e422b2ac80
4
- data.tar.gz: d0d47d0ffa6750d559f81341f5beb4a196c6ac5f
3
+ metadata.gz: bf0470bb5a1c835a86d069127d8e02cb7504454b
4
+ data.tar.gz: abcb0fe938d4f8a3aa84df83950ddf4ba6d7902b
5
5
  SHA512:
6
- metadata.gz: e8f1681e38672dc4947407cb83a17066c143368f17442c59d97df78044557957ea95aff729904c1da7131116e4e0df9fe8e44618397e64fa859e4855592ce6a0
7
- data.tar.gz: 81cf6fd0fb29af5545b41c21fb64c4c2a02bfa264d39f431373dc231950ebbc8ba74e424dfbb9435efc2d9d5bd29aba3d27edfb63c5500d8b2d6ddd24b9b0352
6
+ metadata.gz: 5554938e73ffe3d17f3b079cd2248f936c02ed0aeb2509db50563047e835ae06d5b5d54d0d711d32d4efeed5b277234a4557e525046f595f22e77b91d6311cd3
7
+ data.tar.gz: 8ba932273e7dafad5b3f6718a9385bb2848a7196da3578649df5605cd23fbd8c385921b4e8c82a70d35f20fad8a25b589b6404734043d57592b68096de38174c
@@ -1,6 +1,5 @@
1
1
  module BaseIndexer
2
2
  class ApplicationController < ActionController::Base
3
- respond_to :json, :xml, :html
4
3
 
5
4
  def remove_prefix(druid)
6
5
  druid.gsub('druid:', '') # lop off druid prefix if sent
@@ -12,10 +12,9 @@ module BaseIndexer
12
12
  indexer = BaseIndexer.indexer_class.constantize.new
13
13
  indexer.index druid, targets
14
14
 
15
- # initialize dor-fetcher to get list of druids for this collection
16
- df = DorFetcher::Client.new(service_url: Rails.application.config.dor_fetcher_url)
17
-
18
- item_druids = df.druid_array(df.get_collection(druid, {}))
15
+ # Determine collection item druids
16
+ fetcher = BaseIndexer.fetcher_class.constantize.new(service_url: Rails.application.config.fetcher_url)
17
+ item_druids = fetcher.druid_array(fetcher.get_collection(druid, {}))
19
18
 
20
19
  Rails.logger.debug "Found #{item_druids.size} members of the collection #{druid}"
21
20
 
@@ -3,34 +3,47 @@ require_dependency 'base_indexer/application_controller'
3
3
  module BaseIndexer
4
4
  class ItemsController < ApplicationController
5
5
  def update
6
- druid = remove_prefix params[:id]
7
6
  Rails.logger.debug "Receiving indexing #{druid}"
8
- targets = params[:subtargets]
9
7
 
10
8
  indexer = BaseIndexer.indexer_class.constantize.new
11
- indexer.index druid, targets
12
- @status = report_success
9
+ indexer.index druid, { subtarget_params => true }
13
10
  render nothing: true, status: 200
14
11
  Rails.logger.debug "Completing indexing #{druid}"
15
12
  rescue StandardError => e
16
- @status = report_failure request.method_symbol, params, e
17
- Rails.logger.error @status
13
+ Rails.logger.error report_failure request.method_symbol, params, e
18
14
  render nothing: true, status: 202
19
15
  end
20
16
 
21
17
  def destroy
22
- druid = remove_prefix params[:id]
23
18
  Rails.logger.debug "Receiving deleting #{druid}"
24
-
25
19
  indexer = BaseIndexer.indexer_class.constantize.new
26
- indexer.delete druid
27
- @status = report_success
20
+ # If no subtarget is defined, delete from everywhere
21
+ if optional_subtarget_params.nil?
22
+ indexer.delete druid
23
+ else
24
+ ##
25
+ # Only delete from specified subtarget
26
+ indexer.index druid, { subtarget_params => false }
27
+ end
28
28
  render nothing: true, status: 200
29
29
  Rails.logger.debug "Completing deleting #{druid}"
30
30
  rescue StandardError => e
31
- @status = report_failure request.method_symbol, params, e
32
- Rails.logger.error @status
31
+ Rails.logger.error report_failure request.method_symbol, params, e
33
32
  render nothing: true, status: 202
34
33
  end
34
+
35
+ private
36
+
37
+ def druid
38
+ remove_prefix params.require(:druid)
39
+ end
40
+
41
+ def optional_subtarget_params
42
+ params.permit(:subtarget)[:subtarget]
43
+ end
44
+
45
+ def subtarget_params
46
+ params.require(:subtarget)
47
+ end
35
48
  end
36
49
  end
data/config/routes.rb CHANGED
@@ -3,6 +3,13 @@ BaseIndexer::Engine.routes.draw do
3
3
  get 'about/version' => 'about#version'
4
4
  get 'about' => 'about#version'
5
5
 
6
- resources :items, only: [:update, :destroy]
6
+ resources :items, only: [:destroy], param: :druid, default: { format: :json } do
7
+ member do
8
+ patch 'subtargets/:subtarget', action: :update
9
+ put 'subtargets/:subtarget', action: :update
10
+ delete 'subtargets/:subtarget', action: :destroy
11
+ end
12
+ end
13
+
7
14
  resources :collections, only: :update
8
15
  end
@@ -1,3 +1,3 @@
1
1
  module BaseIndexer
2
- VERSION = '2.0.0'
2
+ VERSION = '3.0.0.pre1'
3
3
  end
data/lib/base_indexer.rb CHANGED
@@ -11,4 +11,5 @@ module BaseIndexer
11
11
  mattr_accessor :mapper_class_name
12
12
  mattr_accessor :solr_writer_class_name
13
13
  mattr_accessor :solr_configuration_class_name
14
+ mattr_accessor :fetcher_class
14
15
  end
@@ -9,5 +9,9 @@ module BaseIndexer
9
9
  def assets
10
10
  copy_file 'solr.yml', 'config/solr.yml'
11
11
  end
12
- end
12
+
13
+ def add_routes
14
+ route "mount BaseIndexer::Engine, at: '/'"
15
+ end
16
+ end
13
17
  end
data/lib/tasks/index.rake CHANGED
@@ -48,10 +48,8 @@ task :log_indexer => :environment do |t, args|
48
48
  errors=0
49
49
  indexed=0
50
50
 
51
- druids=[]
52
-
53
51
  if ['preassembly','remediate'].include? log_type
54
- YAML.load_stream(IO.read(log_file_path)) { |obj| druids << obj[:pid] if obj[log_completed] == true}
52
+ YAML.load_stream(IO.read(log_file_path)).map { |obj| obj[:pid] if obj[log_completed] == true}
55
53
  else
56
54
  csv = CSV.parse(IO.read(log_file_path), :headers => true)
57
55
  druids=csv.map { |row| row.to_hash.with_indifferent_access['druid'] }.delete_if {|druid| druid.nil?}
@@ -162,14 +160,14 @@ task :collection_indexer => :environment do |t, args|
162
160
 
163
161
  indexer = BaseIndexer.indexer_class.constantize.new
164
162
 
165
- df = DorFetcher::Client.new({:service_url => Rails.application.config.dor_fetcher_url})
163
+ fetcher = BaseIndexer.fetcher_class.constantize.new(service_url: Rails.application.config.fetcher_url)
166
164
 
167
165
  collection_druid=collection_druid.gsub('druid:','')
168
166
 
169
167
  indexer.index(collection_druid,{target=>true})
170
168
  log my_logger,"Indexed collection: #{collection_druid}"
171
169
 
172
- druids = df.druid_array(df.get_collection(collection_druid, {}))
170
+ druids = fetcher.druid_array(fetcher.get_collection(collection_druid, {}))
173
171
 
174
172
  log my_logger,"** Found #{druids.size} members of the collection"
175
173
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: base_indexer
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 3.0.0.pre1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ahmed Alsum
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-02-29 00:00:00.000000000 Z
12
+ date: 2016-08-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -85,30 +85,30 @@ dependencies:
85
85
  name: rspec
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - "~>"
88
+ - - ">="
89
89
  - !ruby/object:Gem::Version
90
- version: 3.1.0
90
+ version: '0'
91
91
  type: :development
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
- - - "~>"
95
+ - - ">="
96
96
  - !ruby/object:Gem::Version
97
- version: 3.1.0
97
+ version: '0'
98
98
  - !ruby/object:Gem::Dependency
99
99
  name: rspec-rails
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
- - - "~>"
102
+ - - ">="
103
103
  - !ruby/object:Gem::Version
104
- version: 3.1.0
104
+ version: '0'
105
105
  type: :development
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - "~>"
109
+ - - ">="
110
110
  - !ruby/object:Gem::Version
111
- version: 3.1.0
111
+ version: '0'
112
112
  - !ruby/object:Gem::Dependency
113
113
  name: capybara
114
114
  requirement: !ruby/object:Gem::Requirement
@@ -254,14 +254,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
254
254
  version: '0'
255
255
  required_rubygems_version: !ruby/object:Gem::Requirement
256
256
  requirements:
257
- - - ">="
257
+ - - ">"
258
258
  - !ruby/object:Gem::Version
259
- version: '0'
259
+ version: 1.3.1
260
260
  requirements: []
261
261
  rubyforge_project:
262
- rubygems_version: 2.4.8
262
+ rubygems_version: 2.5.1
263
263
  signing_key:
264
264
  specification_version: 4
265
265
  summary: Summary of BaseIndexer.
266
266
  test_files: []
267
- has_rdoc: