apidae 1.2.21 → 1.2.22

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: 578c5fe1c18428e8dada2ae1735b1512354342a36902acd857bd9e4edac813f9
4
- data.tar.gz: faead9493081103a4f9949f621b72608a04b86dbd396cc265ce08a2e87aa782f
3
+ metadata.gz: e876e6c54a6f64766c87a2cef8b2490951e5498ce42fc36a033d1efd2167cf85
4
+ data.tar.gz: 5968880f4a7e81b5053f5d10075a32970dd299d987a68b5565507b68bfc68d1b
5
5
  SHA512:
6
- metadata.gz: 30d454716bb161d7fcb6f8b54d7e75e486f7f6ca9a4e79d6535197e7270ac351b387e072fd4dd03cf1f5d7e8e9fc171b5bfc2f1d1b6b6a269de52f101bb0396f
7
- data.tar.gz: 6569ba1a08d2970773d50c5d3aa966872b854e46419cd7f5136f05245e0698c6e53e2fd4d6a0fcc3fe5e001b93321442eb28297eb2f1a6ebbd7ca7bfa7bf9a42
6
+ metadata.gz: 395d49eeac109782a8e41b1c0827c2de3f155279a87874b9d5c766e3f49138e8ecc224a81ec88473557799c28731a395639f46f242512ec3e78c4d57d6b50c43
7
+ data.tar.gz: 824474b65f47c9b060823964c185a83cb9b97be5ae63056dabb902418e5150566ad2c3d83fbf922632737af1cb736f637ad6c9efb162ad229def483a4b004cd2
@@ -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.21"
2
+ VERSION = "1.2.22"
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.21
4
+ version: 1.2.22
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-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails