apidae 1.2.20 → 1.2.24

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: 3db2f4b2a2867ecf0452eeef11e4c9b547d0c5d749746e59d3f91832a2b49c3e
4
- data.tar.gz: 416683aa3f8d745d5511adfc47d084788aaab1cc99c948ed5c5d5e7b39bf0890
3
+ metadata.gz: 2a717231678597e174e817b7b690bdfc27137476e3ef781954012a149e729f08
4
+ data.tar.gz: 7a06fc98b8a238c2906bdb814d1f18a43acad992b46feba9e42b1d339d8773e2
5
5
  SHA512:
6
- metadata.gz: 5e745de182af2dc2cc9295bd0c70224a2aa464cc34a3da976fc22a1901e49f12cf2c865ff50ef5708d7830bd74f0694a26c9c2acaecd900ac7ca690134447d26
7
- data.tar.gz: 4207f3dd0e6630f36f77369b0d5b7c7ddd576b303acbecaeb5bb2c3913f0b49f6056c74fe229632b21c2588e5896ff6796d10541e5cd7bf75efc316932445331
6
+ metadata.gz: 62a2be17446a33688036e3fd07722d549c6f3d9659729363df005f7850b90ff63d167b05c128023b075d7a641262813044a48f3a73b09fcf5e9793bbc1f050cf
7
+ data.tar.gz: 2ebd92b9cfc5231b9cee622f0121820065870c970b9cd10b219e183f770130fec07b7711afa16fe65b11eb40a6ce7100e3feb5e13d0d1a9d703b2c0cecb9b8e8
@@ -113,7 +113,7 @@ module Apidae
113
113
  short_desc: node_value(data_hash, :descriptifCourt, *locales),
114
114
  long_desc: node_value(data_hash, :descriptifDetaille, *locales),
115
115
  theme_desc: data_hash[:descriptifsThematises].blank? ? {} : Hash[data_hash[:descriptifsThematises].map {|th| [node_id(th, :theme), node_value(th, :description, *locales)]}],
116
- private_desc: private_data.blank? ? {} : Hash[private_data.map {|d| [d[:nomTechnique], d[:libelleFr] || node_value(d, :descriptif, *locales)]}]
116
+ private_desc: private_data.blank? ? {} : Hash[private_data.map {|d| [d[:nomTechnique], {LOCALE_FR => d[:libelleFr]} || node_value(d, :descriptif, *locales)]}]
117
117
  }
118
118
  end
119
119
  end
@@ -331,6 +331,7 @@ module Apidae
331
331
  if visits_hash
332
332
  booking_hash[:visits_allowed] = visits_hash[:visitable] == true
333
333
  booking_hash[:visits_desc] = node_value(visits_hash, :complementVisite, *locales)
334
+ booking_hash[:visits_duration] = visits_hash[:dureeMoyenneVisiteIndividuelle]
334
335
  end
335
336
  booking_hash
336
337
  end
@@ -44,6 +44,7 @@ module Apidae
44
44
  end
45
45
  end
46
46
  end
47
+ project.cleanup_selections
47
48
  create(result.except(:selections)
48
49
  .merge({remote_file: (zip_file.is_a?(File) ? zip_file.path : zip_file), status: STATUS_COMPLETE, apidae_id: project_id}))
49
50
  logger.info "Import results : #{result}"
@@ -169,7 +170,9 @@ module Apidae
169
170
  def self.add_or_update_selections(project, selections_json, result)
170
171
  selections_hashes = JSON.parse(selections_json, symbolize_names: true)
171
172
  deleted_ids = Selection.where(apidae_project_id: project.id).collect {|sel| sel.apidae_id}.uniq - selections_hashes.collect {|sel| sel[:id]}
172
- Selection.where(apidae_id: deleted_ids).delete_all
173
+ apidae_selection_ids = Selection.where(apidae_id: deleted_ids).map {|s| s.id}
174
+ SelectionObject.where(apidae_selection_id: apidae_selection_ids).delete_all
175
+ Selection.where(id: apidae_selection_ids).delete_all
173
176
  selections_hashes.each do |selection_data|
174
177
  logger.info "Updating selection #{selection_data[:id]}"
175
178
  Selection.add_or_update(selection_data, project.id)
@@ -23,7 +23,7 @@ module Apidae
23
23
  store_accessor :openings_data, :openings_desc, :openings_desc_mode, :openings, :time_periods, :openings_extra
24
24
  store_accessor :rates_data, :rates_desc, :rates_desc_mode, :rates, :payment_methods, :includes, :excludes, :rates_extra
25
25
  store_accessor :service_data, :services, :equipments, :comfort, :activities, :challenged, :languages
26
- store_accessor :booking_data, :booking_desc, :booking_entities, :visits_allowed, :visits_desc
26
+ store_accessor :booking_data, :booking_desc, :booking_entities, :visits_allowed, :visits_desc, :visits_duration
27
27
  store_accessor :tags_data, :promo, :internal, :linked
28
28
  store_accessor :version_data, :versioned_fields
29
29
 
@@ -20,5 +20,11 @@ module Apidae
20
20
  def versions=(values)
21
21
  self.versions_data = values.blank? ? nil : values.join('|')
22
22
  end
23
+
24
+ def cleanup_selections
25
+ apidae_selections.reload.each do |s|
26
+ s.cleanup
27
+ end
28
+ end
23
29
  end
24
30
  end
@@ -42,6 +42,20 @@ module Apidae
42
42
  SelectionObject.where(apidae_selection_id: apidae_sel.id, apidae_object_id: removed_ids).delete_all
43
43
  end
44
44
 
45
+ def cleanup
46
+ obsolete_count = apidae_selection_objects
47
+ .joins("LEFT JOIN apidae_objs ON apidae_objs.id = apidae_selection_objects.apidae_object_id")
48
+ .where("apidae_objs.id IS NULL")
49
+ .delete_all
50
+ logger.info "Cleaned up #{obsolete_count} obsolete selection-objects associations for selection #{apidae_id}"
51
+
52
+ dups = apidae_selection_objects.reload.group(:apidae_object_id)
53
+ .select("COUNT(id), apidae_object_id, ARRAY_AGG(id) AS so_ids")
54
+ .having("COUNT(id) > ?", 1).map {|so| so.so_ids}
55
+ dups_count = apidae_selection_objects.where(id: dups.map {|d| d.sort[1..-1]}.flatten).delete_all
56
+ logger.info "Cleaned up #{dups_count} duplicate selection-objects associations for selection #{apidae_id}"
57
+ end
58
+
45
59
  def results(where_clause, offset, size)
46
60
  objects.includes(:town).limit(size).offset(offset).where(where_clause)
47
61
  end
@@ -1,3 +1,3 @@
1
1
  module Apidae
2
- VERSION = "1.2.20"
2
+ VERSION = "1.2.24"
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.2.20
4
+ version: 1.2.24
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: 2021-07-28 00:00:00.000000000 Z
11
+ date: 2021-10-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails