apidae 1.2.21 → 1.2.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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