to_spotlight 0.2 → 0.2.5

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
  SHA256:
3
- metadata.gz: 723cfc28349b5d450764bd91b70871ea4b2b326245a26b54ce84473263fb6ee3
4
- data.tar.gz: 3f8170875f2b4fc728ea963d505ead581cc9270d2e14f358b102df1780016994
3
+ metadata.gz: 42072bef23a9bedf75316257ef35e762377533a0a47eb9736cc301110760017f
4
+ data.tar.gz: 12287d3718e9c835fe4e4de9451cb2320d7618062a4b2335ef81c79da3c23adb
5
5
  SHA512:
6
- metadata.gz: babde70f0e14fc18baacaa81069ca4ae66b4dda99eb5840f2ce7e9746f1a4f614548a78056641fb4be5d08371c76accef48ebdb4a47d4858cc56d728c97ce32a
7
- data.tar.gz: b7a3a177ed371b5393008b8cf9d1b2c4a5e5508fd6085c0e349ea3af9aece78931d7363b34246c1971fa6ee2563f73a6afa5f1e43b8a317656a199a141b8fd5d
6
+ metadata.gz: d5b1cbeb353243a6bcdf333feaeee88c5e83a07973cef77c3b4c2bc9fcee5e97df779ee2fbe85a570163158dec377aff2a588dc105a2beba5ae89ad5a2328b5c
7
+ data.tar.gz: edd17d9bc9b12b183f77320ae504953d8c753b3f6c0bffed75c79d0268067028effe8936bd3a8b3b1f43c3d498930b041f585970766ad37bfc835e34ccb4333d
@@ -1,7 +1,12 @@
1
1
  module ToSpotlight
2
- class SpotlightTransferController < ActionController::Base
2
+ class SpotlightTransferController < ApplicationController
3
3
  protect_from_forgery with: :exception
4
+ before_action :authenticate_user!
4
5
  skip_before_action :verify_authenticity_token, only: :receive
6
+ helper_method :default_page_title, :admin_host?, :available_translations, :available_works
7
+ include ActionView::Helpers::UrlHelper
8
+ layout 'hyrax/dashboard' if Hyrax
9
+ before_action :authenticate, except: :index
5
10
  require 'json'
6
11
  require 'net/http'
7
12
 
@@ -20,7 +25,7 @@ module ToSpotlight
20
25
  end
21
26
 
22
27
  def receive
23
- return unless params[:token]
28
+ return unless params[:token] == token
24
29
  @transfer = ToSpotlight::SpotlightTransfer.new get_transfer_attributes
25
30
  @transfer.mappings = params[:mappings]
26
31
  if @transfer.save
@@ -50,6 +55,10 @@ module ToSpotlight
50
55
 
51
56
  private
52
57
 
58
+ def token
59
+ ToSpotlight::Engine.config['hyrax_instances']
60
+ end
61
+
53
62
  def mapping_invert(hash)
54
63
  result = []
55
64
  test = hash.map { |h| {h['hyrax'] => h['spotlight'].values} }
@@ -118,5 +127,24 @@ module ToSpotlight
118
127
  :spotlight_url)
119
128
  end
120
129
 
130
+ #helpers
131
+ def available_works
132
+ @available_works ||= Hyrax::QuickClassificationQuery.new(current_user).authorized_models
133
+ end
134
+
135
+ def default_page_title
136
+ 'Spotlight Transfer'
137
+ end
138
+
139
+ def admin_host?
140
+ false unless Settings.multitenancy.enabled rescue nil
141
+ end
142
+
143
+ def available_translations
144
+ {
145
+ 'en' => 'English',
146
+ 'fr' => 'French'
147
+ }
148
+ end
121
149
  end
122
150
  end
@@ -50,15 +50,22 @@ module ToSpotlight
50
50
  File.open(dir.join(filename), 'wb') do |file|
51
51
  file.write(csv_array.join("\n"))
52
52
  end
53
- byebug
54
- res = ::Net::HTTP.post URI("#{transfer.spotlight_url}/from_hyrax/receive"),
55
- { csv_url: "https://#{base_url}/uploads/csvs/#{filename}",
56
- transfer: transfer.attributes.except(:mappings), #only allow user+exhibit ??
57
- token: 'secret_token' }.to_json,
58
- 'Content-Type' => 'application/json'
53
+ res = post_response URI("#{transfer.spotlight_url}/from_hyrax/receive"),
54
+ csv_url: "https://#{base_url}/uploads/csvs/#{filename}",
55
+ transfer: transfer.attributes.slice(:user, :exhibit), #only allow user+exhibit
56
+ token: 'secret_token'
59
57
 
60
58
  end
61
59
 
60
+ def post_response uri, options={}
61
+ http = Net::HTTP.new(uri.host, uri.port)
62
+ http.use_ssl = true
63
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
64
+ request = Net::HTTP::Post.new(uri.request_uri, 'Content-Type' => 'application/json')
65
+ request.body = options.to_json
66
+ http.request(request)
67
+ end
68
+
62
69
  def base_url
63
70
  @base_url ||= ::Account.where(tenant: Apartment::Tenant.current).first.cname
64
71
  end
@@ -1,5 +1,3 @@
1
- <h1>ToSpotlight#approve</h1>
2
- <p>Find me in app/views/to_spotlight/to_spotlight/approve.html.erb</p>
3
1
  <%= params.inspect %>
4
2
 
5
3
  <br/>
@@ -0,0 +1,7 @@
1
+ class CdmMigrator::InstallGenerator < Rails::Generators::Base
2
+ source_root File.expand_path('../templates', __FILE__)
3
+
4
+ def inject_content_dm_yml
5
+ copy_file('config/to_spotlight.yml', 'config/to_spotlight.yml') unless File.file?('config/to_spotlight.yml')
6
+ end
7
+ end
@@ -0,0 +1 @@
1
+ secret_token: 'rftvgyuhwefhcgyvuryweudijxoschdufygvebhqwdijloschvugbeiofhqdijlcnhqeljcmjioeql328r9hdfec3h'
@@ -1,3 +1,3 @@
1
1
  module ToSpotlight
2
- VERSION = '0.2'
2
+ VERSION = '0.2.5'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: to_spotlight
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - sephirothkod
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-02 00:00:00.000000000 Z
11
+ date: 2020-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -72,6 +72,8 @@ files:
72
72
  - config/application.rb
73
73
  - config/routes.rb
74
74
  - db/migrate/20200310153953_create_to_spotlight_spotlight_transfers.rb
75
+ - lib/generators/install/install_generator.rb
76
+ - lib/generators/install/templates/config/to_spotlight.yml
75
77
  - lib/tasks/to_spotlight_tasks.rake
76
78
  - lib/to_spotlight.rb
77
79
  - lib/to_spotlight/engine.rb