diff options
| author | Robert | 2017-07-21 15:59:34 +0200 | 
|---|---|---|
| committer | Robert | 2017-07-21 16:32:47 +0200 | 
| commit | ded817a7d0802cc2aafcdbe4bb256698f6868afd (patch) | |
| tree | 30ac61f0f8483dc36d470da28a786eb091e5f0ff /app | |
| parent | 4fffff70d5dc57929653ed1d1a1ce68e9769cee4 (diff) | |
| download | chouette-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.rb | 19 | ||||
| -rw-r--r-- | app/models/user.rb | 16 | ||||
| -rw-r--r-- | app/workers/workbench_import_worker.rb | 30 | 
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  | 
