apidae 1.3.11 → 1.3.14

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: bee9036918ecb7ac147dca2b69a63f0604f0bde51cdfaa3f873f7b4d186aec1f
4
- data.tar.gz: 6f7334fedf936fbfa88714f4d94b930d855299661fc9c6c2f0b2dd312cc5609f
3
+ metadata.gz: 8b0a75e107222c0e4c95387eb3f11641bfa62796c499c46915366a7035b8c685
4
+ data.tar.gz: 567423739b0f9f87341111fe33b6e2260465d47583ab282fef0234b1f5e79cf7
5
5
  SHA512:
6
- metadata.gz: d6d7c79ee27939c1263092dcad1dfe786ea0cf2a69af8d02ef408336076c7527d56fad0b8954dac5c674e3f2a837b1af6ca79996a437fdbb06fb6391340413f1
7
- data.tar.gz: 45ef9cd81e5bc646a103536488410dbec175cc75b7272ddd5a3ddf97ee7f265af1c807df2b120140c40edd505abdafc9a1ae387dcafcbb8e764afa3c781d71d5
6
+ metadata.gz: 49b000ca4218681cabfa00dea2ec31c28fe4d0cd9fb7147a1ca23f411e1c659caf711a229c736c6c4971d0827411d9682b90aea751f4ef297f5f1c241fee9983
7
+ data.tar.gz: 5655202cdbeb55bc7103563933631b082d0827de6b9fab2335630312a3fca1304cfd96ac33c931867338bf4264dc2e9cb6f9dab5fe438d87b20d77936c752759
@@ -37,7 +37,10 @@ module Apidae
37
37
  def run
38
38
  success = true
39
39
  Export.pending.each do |e|
40
+ logger.info "Running import for Apidae export #{e.id} - Project #{e.project.id}"
41
+ e.update(status: Export::IN_PROGRESS)
40
42
  success &&= e.import_data
43
+ logger.info "Apidae export #{e.id} import run complete - Project #{e.project.id}"
41
44
  end
42
45
  success ? head(:ok) : head(:internal_server_error)
43
46
  end
@@ -375,7 +375,6 @@ module Apidae
375
375
  else
376
376
  nil
377
377
  end
378
-
379
378
  end
380
379
 
381
380
  private
@@ -5,6 +5,7 @@ module Apidae
5
5
  class Export < ActiveRecord::Base
6
6
 
7
7
  PENDING = 'pending'
8
+ IN_PROGRESS = 'in_progress'
8
9
  COMPLETE = 'complete'
9
10
  CANCELLED = 'cancelled'
10
11
 
@@ -24,11 +25,16 @@ module Apidae
24
25
  where(remote_status: 'SUCCESS', status: PENDING).order(:id)
25
26
  end
26
27
 
28
+ def self.in_progress
29
+ where(remote_status: 'SUCCESS', status: IN_PROGRESS)
30
+ end
31
+
27
32
  def import_data
28
33
  success = true
29
34
  begin
30
35
  open(file_url) do |f|
31
36
  begin
37
+ logger.info "Starting file import for export #{id} - project #{project_id}"
32
38
  FileImport.import(f, project_id)
33
39
  unless confirm_url.blank?
34
40
  uri = URI(confirm_url)
@@ -36,11 +42,13 @@ module Apidae
36
42
  Net::HTTP.start(uri.hostname, uri.port) do |http|
37
43
  http.request(req)
38
44
  end
45
+ logger.info "Posted file import callback for export #{id} - project #{project_id}"
39
46
  end
40
47
  update(status: Export::COMPLETE)
41
48
  if Rails.application.config.respond_to?(:apidae_import_callback)
42
49
  Rails.application.config.apidae_import_callback.call(self)
43
50
  end
51
+ logger.info "Completed file import for export #{id} - project #{project_id}"
44
52
  rescue Exception => ex
45
53
  logger.error("Failed to import export file : #{file_url}")
46
54
  logger.error("Error is : #{ex} \n#{ex.backtrace.join("\n") unless ex.backtrace.blank?}")
@@ -12,15 +12,17 @@ module Apidae
12
12
  def self.import(refs_json)
13
13
  locales = Rails.application.config.respond_to?(:apidae_locales) ? Rails.application.config.apidae_locales : [DEFAULT_LOCALE]
14
14
  locales_map = Hash[locales.map {|loc| ["libelle#{loc.camelize.gsub('-', '')}".to_sym, loc]}]
15
- refs_hashes = JSON.parse(refs_json, symbolize_names: true)
16
- if refs_hashes.length != where("apidae_type != ?", INTERNAL).count
17
- refs_hashes.each do |ref_data|
18
- ref = Reference.find_or_initialize_by(apidae_id: ref_data[:id], apidae_type: ref_data[:elementReferenceType])
19
- ref.label_data = ref_data.slice(*locales_map.keys).transform_keys {|k| locales_map[k]}
20
- ref.parent = ref_data[:parent][:id] if ref_data[:parent]
21
- ref.category = ref_data[:familleCritere] ? ref_data[:familleCritere][:id] : (ref_data[:typeLabel] ? ref_data[:typeLabel][:id] : nil)
22
- ref.is_active = ref_data[:actif]
23
- ref.save!
15
+ if count == 0 || Time.current > (maximum(:updated_at) + 1.day)
16
+ refs_hashes = JSON.parse(refs_json, symbolize_names: true)
17
+ if refs_hashes.length != where("apidae_type != ?", INTERNAL).count
18
+ refs_hashes.each do |ref_data|
19
+ ref = Reference.find_or_initialize_by(apidae_id: ref_data[:id], apidae_type: ref_data[:elementReferenceType])
20
+ ref.label_data = ref_data.slice(*locales_map.keys).transform_keys {|k| locales_map[k]}
21
+ ref.parent = ref_data[:parent][:id] if ref_data[:parent]
22
+ ref.category = ref_data[:familleCritere] ? ref_data[:familleCritere][:id] : (ref_data[:typeLabel] ? ref_data[:typeLabel][:id] : nil)
23
+ ref.is_active = ref_data[:actif]
24
+ ref.save!
25
+ end
24
26
  end
25
27
  end
26
28
  end
@@ -1,3 +1,3 @@
1
1
  module Apidae
2
- VERSION = "1.3.11"
2
+ VERSION = "1.3.14"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apidae
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.11
4
+ version: 1.3.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean-Baptiste Vilain
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-02 00:00:00.000000000 Z
11
+ date: 2022-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails