aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorRobert2017-07-21 15:59:34 +0200
committerRobert2017-07-21 16:32:47 +0200
commitded817a7d0802cc2aafcdbe4bb256698f6868afd (patch)
tree30ac61f0f8483dc36d470da28a786eb091e5f0ff /app
parent4fffff70d5dc57929653ed1d1a1ce68e9769cee4 (diff)
downloadchouette-core-ded817a7d0802cc2aafcdbe4bb256698f6868afd.tar.bz2
Refs: #3507@4.5h spec setup and refactoring, using Faraday in worker
- Setting up correct headers for the Webmock request (Oh Boy) - Refactoring all Faraday requests into `lib/af83/http_fetcher.rb` - Implementing the Download
Diffstat (limited to 'app')
-rw-r--r--app/models/organisation.rb19
-rw-r--r--app/models/user.rb16
-rw-r--r--app/workers/workbench_import_worker.rb30
3 files changed, 26 insertions, 39 deletions
diff --git a/app/models/organisation.rb b/app/models/organisation.rb
index d0742bda6..a3c5da1af 100644
--- a/app/models/organisation.rb
+++ b/app/models/organisation.rb
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
class Organisation < ActiveRecord::Base
include DataFormatEnumerations
@@ -26,19 +25,13 @@ class Organisation < ActiveRecord::Base
def self.portail_api_request
conf = Rails.application.config.try(:stif_portail_api)
- raise 'Rails.application.config.stif_portail_api settings is not defined' unless conf
+ raise 'Rails.application.config.stif_portail_api configuration is not defined' unless conf
- conn = Faraday.new(:url => conf[:url]) do |c|
- c.headers['Authorization'] = "Token token=\"#{conf[:key]}\""
- c.adapter Faraday.default_adapter
- end
-
- resp = conn.get '/api/v1/organizations'
- if resp.status == 200
- JSON.parse resp.body
- else
- raise "Error on api request status : #{resp.status} => #{resp.body}"
- end
+ AF83::HTTPFetcher.get_resource(
+ host: conf[:url],
+ path: '/api/v1/organizations',
+ parse_json: true,
+ token: conf[:key])
end
def self.sync_update code, name, scope
diff --git a/app/models/user.rb b/app/models/user.rb
index 64d66883f..fbffd96be 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -66,17 +66,11 @@ class User < ActiveRecord::Base
conf = Rails.application.config.try(:stif_portail_api)
raise 'Rails.application.config.stif_portail_api settings is not defined' unless conf
- conn = Faraday.new(:url => conf[:url]) do |c|
- c.headers['Authorization'] = %{Token token="#{conf[:key]}"}
- c.adapter Faraday.default_adapter
- end
-
- resp = conn.get '/api/v1/users'
- if resp.status == 200
- JSON.parse resp.body
- else
- raise "Error on api request status : #{resp.status} => #{resp.body}"
- end
+ AF83::HTTPFetcher.get_resource(
+ host: conf[:url],
+ path: '/api/v1/users',
+ parse_json: true,
+ token: conf[:key])
end
def self.portail_sync
diff --git a/app/workers/workbench_import_worker.rb b/app/workers/workbench_import_worker.rb
index b1c4fa30f..1def3cb86 100644
--- a/app/workers/workbench_import_worker.rb
+++ b/app/workers/workbench_import_worker.rb
@@ -1,5 +1,7 @@
class WorkbenchImportWorker
include Sidekiq::Worker
+ include Rails.application.routes.url_helpers
+
attr_reader :import, :downloaded
def perform(import_id)
@@ -9,26 +11,24 @@ class WorkbenchImportWorker
end
def download
- logger.warn "Call iev get #{Rails.configuration.fe_url}/boiv_iev/referentials/importer/new?id=#{id}"
- begin
- Net::HTTP.get(URI("#{Rails.configuration.front_end_url}/boiv_iev/referentials/importer/new?id=#{id}"))
- rescue Exception => e
- logger.error "IEV server error : e.message"
- logger.error e.backtrace.inspect
- end
-
-
- require 'pry'
- binding.pry
- 42
-
+ logger.warn "HTTP GET #{import_url}"
+ @downloaded = AF83::HTTPFetcher.get_resource(
+ host: import_host,
+ path: import_path,
+ params: {token: import.token_download})
end
+ def import_host
+ @__import_host__ ||= Rails.application.config.front_end_host
+ end
+ def import_path
+ @__import_path__ ||= File.join(download_workbench_import_path(import.workbench, import))
+ end
def import_uri
- @__import_uri__ ||= URI(import_url)
+ @__import_uri__ ||= URI(import_url)
end
def import_url
- @__import_url__ ||= File.join(download_workbench_import_path(import.workbench, import))
+ @__import_url__ ||= File.join(import_host, import_path)
end
end