base_indexer 2.0.0 → 3.0.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
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: