Merge pull request #3532 from okriuchykhin/ok_SCI_6010

Fix BMT base URL path in requests [SCI-6010]
This commit is contained in:
Alex Kriuchykhin 2021-09-07 16:30:21 +02:00 committed by GitHub
commit a93ca08db3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 11 deletions

View file

@ -59,7 +59,7 @@ class BioEddieAssetsController < ApplicationController
return render_404 unless Rails.application.config.x.biomolecule_toolkit_base_url return render_404 unless Rails.application.config.x.biomolecule_toolkit_base_url
uri = URI.parse(Rails.application.config.x.biomolecule_toolkit_base_url) uri = URI.parse(Rails.application.config.x.biomolecule_toolkit_base_url)
uri.path = request.original_fullpath.remove('/biomolecule_toolkit') uri.path = File.join(uri.path, request.original_fullpath.remove('/biomolecule_toolkit'))
Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http| Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
api_request = "Net::HTTP::#{request.request_method.capitalize}".constantize.new(uri) api_request = "Net::HTTP::#{request.request_method.capitalize}".constantize.new(uri)

View file

@ -7,50 +7,54 @@ class BiomoleculeToolkitClient
class BiomoleculeToolkitClientException < StandardError; end class BiomoleculeToolkitClientException < StandardError; end
def initialize def initialize
uri = URI.parse(Rails.application.config.x.biomolecule_toolkit_base_url) @uri = URI.parse(Rails.application.config.x.biomolecule_toolkit_base_url)
@http = Net::HTTP.new(uri.host, uri.port) @http = Net::HTTP.new(@uri.host, @uri.port)
@http.use_ssl = (uri.scheme == 'https') @http.use_ssl = (@uri.scheme == 'https')
end end
def healthy? def healthy?
request = Net::HTTP::Get.new('/api/health') request = Net::HTTP::Get.new(build_request_path('/api/health'))
process_request(request)&.dig('status') == 'UP' process_request(request)&.dig('status') == 'UP'
end end
def list_attributes def list_attributes
request = Net::HTTP::Get.new(MACROMOLECULES_ATTRIBUTES_PATH) request = Net::HTTP::Get.new(build_request_path(MACROMOLECULES_ATTRIBUTES_PATH))
process_request(request) process_request(request)
end end
def list def list
request = Net::HTTP::Get.new(MACROMOLECULES_PATH) request = Net::HTTP::Get.new(build_request_path(MACROMOLECULES_PATH))
process_request(request) process_request(request)
end end
def create(params:) def create(params:)
request = Net::HTTP::Post.new(MACROMOLECULES_PATH) request = Net::HTTP::Post.new(build_request_path(MACROMOLECULES_PATH))
request.body = params request.body = params
process_request(request) process_request(request)
end end
def get(cid:) def get(cid:)
request = Net::HTTP::Get.new("#{MACROMOLECULES_PATH}/#{CGI.escape(cid)}") request = Net::HTTP::Get.new(build_request_path("#{MACROMOLECULES_PATH}/#{CGI.escape(cid)}"))
process_request(request) process_request(request)
end end
def update(cid:, params:) def update(cid:, params:)
request = Net::HTTP::Put.new("#{MACROMOLECULES_PATH}/#{CGI.escape(cid)}") request = Net::HTTP::Put.new(build_request_path("#{MACROMOLECULES_PATH}/#{CGI.escape(cid)}"))
request.body = params request.body = params
process_request(request) process_request(request)
end end
def delete def delete
request = Net::HTTP::Delete.new("#{MACROMOLECULES_PATH}/#{CGI.escape(cid)}") request = Net::HTTP::Delete.new(build_request_path("#{MACROMOLECULES_PATH}/#{CGI.escape(cid)}"))
process_request(request) process_request(request)
end end
private private
def build_request_path(sub_path)
File.join(@uri.path, sub_path)
end
def process_request(request) def process_request(request)
if Rails.application.config.x.biomolecule_toolkit_api_key if Rails.application.config.x.biomolecule_toolkit_api_key
request['x-api-key'] = Rails.application.config.x.biomolecule_toolkit_api_key request['x-api-key'] = Rails.application.config.x.biomolecule_toolkit_api_key