apidae 0.9.32 → 0.10.0

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
- SHA256:
3
- metadata.gz: db36dfb4480f3b1bc1458a618b0a2ce5c3c9a3b496474e04407f1eee9256734e
4
- data.tar.gz: 5e20f5c540670359f7e1efebd3413b070f1f87a3f5864a4dcd9e0cf1917ec7ee
2
+ SHA1:
3
+ metadata.gz: 1e5d13058f65857b20c5eb5ebcb31933047d458d
4
+ data.tar.gz: 57c158bf11ea28f28c25094e2e2b732289cd1b47
5
5
  SHA512:
6
- metadata.gz: 03e5f796b063b512c3a433cf44e36360044cbac1fd881a0ae9d6f92f2f09953a405dc78224b8f378f6c7badff97c8910c3f3cb07bbae75f85e51bc8fb374c1cc
7
- data.tar.gz: 328ab820e3d843f86089f3ce3616347eacb63a3635f58637af8c799b65a79562d2a7e59c8371cf4925b5c253cab7853837f9a77737ce69b8c5859bfcf1972d46
6
+ metadata.gz: '039e3d10fa484d795ad731c1a178b567f7c793b2a339ea835370f0a3c59318734ecb5bc9cd818073da9d4c16cdaf03d9d833f83c507d8589f39fe41d56c32657'
7
+ data.tar.gz: 188194787706a94cf7b04854bdd92266095ee95607b24a764ad2ccadda0fec50f076bb9d0631b7bb3454c02c80c74334bb5f313832d10ac012b86ec4ad3c3e23
@@ -30,22 +30,18 @@ module Apidae
30
30
  Town.import(zfile.read(TOWNS_FILE))
31
31
  logger.info "Completed #{Town.count} towns update"
32
32
  end
33
- ordered_files(zfile).each do |file|
34
- puts "processing #{file.name}"
33
+ zfile.each do |file|
35
34
  if file.file? && file.name.end_with?('.json')
36
35
  logger.info "Processing file : #{file.name}"
37
36
  if file.name.include?(MODIFIED_DIR)
38
37
  add_or_update_objects(zfile.read(file.name), result, project.locales, project.versions)
39
- end
40
- if file.name.include?(SELECTIONS_FILE)
41
- add_or_update_selections(project, zfile.read(file.name), result)
42
- end
43
- if file.name.include?(DELETED_FILE)
38
+ elsif file.name.include?(DELETED_FILE)
44
39
  delete_objects(zfile.read(file.name), result)
40
+ elsif file.name.include?(SELECTIONS_FILE)
41
+ add_or_update_selections(project, zfile.read(file.name), result)
45
42
  end
46
43
  end
47
44
  end
48
- project.cleanup_selections
49
45
  create(result.except(:selections)
50
46
  .merge({remote_file: (zip_file.is_a?(File) ? zip_file.path : zip_file), status: STATUS_COMPLETE, apidae_id: project_id}))
51
47
  logger.info "Import results : #{result}"
@@ -108,16 +104,12 @@ module Apidae
108
104
  end
109
105
  end
110
106
 
111
- def self.ordered_files(zfile)
112
- zfile.sort_by {|f| f.name.include?(MODIFIED_DIR) ? 0 : (f.name.include?(SELECTIONS_FILE) ? 1 : 2)}
113
- end
114
-
115
107
  def self.delete_objects(deleted_json, result)
116
108
  deleted_ids = JSON.parse(deleted_json)
117
109
  deleted_ids.each do |id|
118
110
  obj = Obj.find_by_apidae_id(id)
119
111
  if obj
120
- obj.destroy! if obj.selections.empty?
112
+ obj.destroy!
121
113
  result[:deleted] += 1
122
114
  else
123
115
  logger.info "skipping object deletion : #{id}"
@@ -171,9 +163,7 @@ module Apidae
171
163
  def self.add_or_update_selections(project, selections_json, result)
172
164
  selections_hashes = JSON.parse(selections_json, symbolize_names: true)
173
165
  deleted_ids = Selection.where(apidae_project_id: project.id).collect {|sel| sel.apidae_id}.uniq - selections_hashes.collect {|sel| sel[:id]}
174
- apidae_selection_ids = Selection.where(apidae_id: deleted_ids).map {|s| s.id}
175
- SelectionObject.where(apidae_selection_id: apidae_selection_ids).delete_all
176
- Selection.where(id: apidae_selection_ids).delete_all
166
+ Selection.where(apidae_id: deleted_ids).delete_all
177
167
  selections_hashes.each do |selection_data|
178
168
  logger.info "Updating selection #{selection_data[:id]}"
179
169
  Selection.add_or_update(selection_data, project.id)
@@ -18,7 +18,7 @@ module Apidae
18
18
  store_accessor :entity_data, :entity_id, :entity_name, :service_provider_id
19
19
  store_accessor :contact, :telephone, :email, :website
20
20
  store_accessor :location_data, :address, :place, :latitude, :longitude, :access, :territories, :environments
21
- store_accessor :openings_data, :openings_desc, :openings_desc_mode, :openings, :time_periods, :openings_extra
21
+ store_accessor :openings_data, :openings_desc, :openings_desc_mode, :openings, :time_periods
22
22
  store_accessor :rates_data, :rates_desc, :rates_desc_mode, :rates, :payment_methods, :includes, :excludes
23
23
  store_accessor :service_data, :services, :equipments, :comfort, :activities, :challenged, :languages
24
24
  store_accessor :booking_data, :booking_desc, :booking_entities
@@ -109,7 +109,11 @@ module Apidae
109
109
  end
110
110
 
111
111
  def in_version(v)
112
- versions.where(version: v).first
112
+ @cached_versions ||= {}
113
+ if @cached_versions[v].nil?
114
+ @cached_versions[v] = versions.where(version: v).first
115
+ end
116
+ @cached_versions[v]
113
117
  end
114
118
 
115
119
  def in_locale(l)
@@ -339,14 +343,14 @@ module Apidae
339
343
  end
340
344
  end
341
345
 
346
+ # Note : use internal format for openings storage (ideally Apihours one, to merge data from both sources)
342
347
  def self.parse_openings(openings_hash, *locales)
343
348
  if openings_hash && openings_hash[:periodeEnClair]
344
349
  {
345
350
  openings_desc: node_value(openings_hash, :periodeEnClair, *locales),
346
351
  openings_desc_mode: openings_hash[:periodeEnClairGenerationMode] == 'AUTOMATIQUE' ? MODE_AUTO : MODE_MANUAL,
347
352
  openings: openings_hash[:periodesOuvertures],
348
- time_periods: lists_ids(openings_hash[:indicationsPeriode]),
349
- openings_extra: lists_ids(openings_hash[:ouverturesComplementaires])
353
+ time_periods: lists_ids(openings_hash[:indicationsPeriode])
350
354
  }
351
355
  end
352
356
  end
@@ -453,7 +457,7 @@ module Apidae
453
457
 
454
458
  def self.build_rate(rate_period)
455
459
  {
456
- id: rate_period[:identifiant], from: rate_period[:dateDebut], to: rate_period[:dateFin],
460
+ id: rate_period[:identifiant], start_date: rate_period[:dateDebut], end_date: rate_period[:dateFin],
457
461
  values: rate_period[:tarifs].blank? ? [] : rate_period[:tarifs].map {|t| {min: t[:minimum], max: t[:maximum], type: t[:type][:id], details: node_value(t, :precisionTarif)}}
458
462
  }
459
463
  end
@@ -20,11 +20,5 @@ 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
29
23
  end
30
24
  end
@@ -42,20 +42,6 @@ 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
-
59
45
  def results(where_clause, offset, size)
60
46
  objects.includes(:town).limit(size).offset(offset).where(where_clause)
61
47
  end
@@ -79,7 +65,7 @@ module Apidae
79
65
  key = cache_key(:agenda, from, to)
80
66
  res = $apidae_cache.read(key)
81
67
  unless res
82
- query_args = build_args(AGENDA_ENDPOINT, {selection_ids: [apidae_id], from: from, to: to, count: 200})
68
+ query_args = build_args(AGENDA_ENDPOINT, {selection_ids: [apidae_id], from: from, to: to})
83
69
  res = query_api(query_args, true)
84
70
  $apidae_cache.write(key, res)
85
71
  end
@@ -130,7 +116,7 @@ module Apidae
130
116
  obj = Obj.update_object(obj, obj_data, apidae_project.locales, apidae_project.versions)
131
117
  else
132
118
  obj = Obj.add_object(obj_data, apidae_project.locales, apidae_project.versions)
133
- SelectionObject.create(apidae_selection_id: id, apidae_object_id: obj.id)
119
+ SelectionObject.create(apidae_selection_id: id, apidae_object_id: added_obj.id)
134
120
  end
135
121
  if Rails.application.config.respond_to?(:apidae_obj_refresh_callback)
136
122
  Rails.application.config.apidae_obj_refresh_callback.call(obj.apidae_id)
@@ -149,15 +135,14 @@ module Apidae
149
135
 
150
136
  if all_results
151
137
  loops = 0
152
- max_loops = only_ids ? 50 : MAX_LOOPS
153
138
  query_args[:first] = 0
154
- query_args[:count] ||= MAX_COUNT
139
+ query_args[:count] = MAX_COUNT
155
140
  query_args[:locales] ||= apidae_project && !apidae_project.locales.blank? ? apidae_project.locales : [DEFAULT_LOCALE]
156
141
  response = JSON.parse get_response(query_args), symbolize_names: false
157
142
  total = response['numFound']
158
143
  query_result[:results] = (only_ids ? response['objetTouristiqueIds'] : response['objetsTouristiques']) || {}
159
144
 
160
- while total > results_count(query_result) && loops < max_loops
145
+ while total > results_count(query_result) && loops < MAX_LOOPS
161
146
  loops += 1
162
147
  query_args[:first] += MAX_COUNT
163
148
  response = JSON.parse get_response(query_args), symbolize_names: false
@@ -8,10 +8,9 @@ module Apidae
8
8
  LOCALE_ZH = 'zh'
9
9
  LOCALE_ES = 'es'
10
10
  LOCALE_PT_BR = 'pt-BR'
11
- LOCALE_JP = 'jp'
12
11
 
13
12
  DEFAULT_LOCALE = LOCALE_FR
14
- ALL_LOCALES = [LOCALE_FR, LOCALE_EN, LOCALE_IT, LOCALE_DE, LOCALE_NL, LOCALE_RU, LOCALE_ZH, LOCALE_ES, LOCALE_PT_BR, LOCALE_JP]
13
+ ALL_LOCALES = [LOCALE_FR, LOCALE_EN, LOCALE_IT, LOCALE_DE, LOCALE_NL, LOCALE_RU, LOCALE_ZH, LOCALE_ES, LOCALE_PT_BR]
15
14
 
16
15
  STANDARD_VERSION = 'STANDARD'
17
16
  WINTER_VERSION = 'HIVER'
@@ -32,7 +32,6 @@ fr:
32
32
  ru: Russe
33
33
  zh: Chinois
34
34
  'pt-BR': Brésilien
35
- jp: Japonais
36
35
  versions:
37
36
  STANDARD: Standard
38
37
  HIVER: Hiver
@@ -1,3 +1,3 @@
1
1
  module Apidae
2
- VERSION = "0.9.32"
2
+ VERSION = "0.10.0"
3
3
  end
@@ -63,337 +63,3 @@ Migrating to AddLocalesDataToApidaeProjects (20190123214635)
63
63
   (0.2ms) COMMIT
64
64
   (0.2ms) SELECT pg_advisory_unlock(6140174353533887940)
65
65
   (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
66
- Apidae::Obj Load (26.8ms) SELECT apidae_id, COUNT(id) FROM "apidae_objs" WHERE "apidae_objs"."root_obj_id" IS NULL GROUP BY "apidae_objs"."apidae_id" HAVING (COUNT(id) > 1)
67
- Apidae::Obj Load (2.4ms) SELECT apidae_id, COUNT(id) FROM "apidae_objs" WHERE "apidae_objs"."root_obj_id" IS NULL GROUP BY "apidae_objs"."apidae_id" HAVING (COUNT(id) > 1)
68
- Apidae::Obj Load (0.8ms) SELECT "apidae_objs".* FROM "apidae_objs" ORDER BY "apidae_objs"."id" ASC LIMIT $1 [["LIMIT", 1]]
69
-  (3.4ms) SELECT COUNT(*) FROM "apidae_objs"
70
-  (20.0ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL PRIMARY KEY)
71
-  (40.8ms) CREATE TABLE "ar_internal_metadata" ("key" character varying NOT NULL PRIMARY KEY, "value" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
72
-  (0.9ms) SELECT pg_try_advisory_lock(6140174353533887940)
73
-  (0.6ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
74
- Migrating to CreateApidaeSelections (20170512212941)
75
-  (0.1ms) BEGIN
76
-  (40.3ms) CREATE TABLE "apidae_selections" ("id" serial NOT NULL PRIMARY KEY, "label" character varying, "reference" character varying, "apidae_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
77
- ActiveRecord::SchemaMigration Create (0.5ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20170512212941"]]
78
-  (0.4ms) COMMIT
79
- Migrating to CreateApidaeObjects (20170512214641)
80
-  (40.8ms) BEGIN
81
-  (6.7ms) CREATE TABLE "apidae_objects" ("id" serial NOT NULL PRIMARY KEY, "address" character varying, "apidae_id" integer, "apidae_type" character varying, "apidae_subtype" character varying, "title" character varying, "short_desc" text, "contact" text, "long_desc" text, "type_data" text, "latitude" float, "longitude" float, "openings" text, "rates" text, "reservation" text, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
82
- ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20170512214641"]]
83
-  (0.4ms) COMMIT
84
- Migrating to CreateApidaeObjectsApidaeSelections (20170512221525)
85
-  (39.6ms) BEGIN
86
-  (4.7ms) CREATE TABLE "apidae_objects_apidae_selections" ("id" serial NOT NULL PRIMARY KEY, "object_id" integer, "selection_id" integer)
87
- ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20170512221525"]]
88
-  (0.3ms) COMMIT
89
- Migrating to CreateApidaeTowns (20170513114002)
90
-  (40.7ms) BEGIN
91
-  (6.2ms) CREATE TABLE "apidae_towns" ("id" serial NOT NULL PRIMARY KEY, "country" character varying, "apidae_id" integer, "insee_code" character varying, "name" character varying, "postal_code" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
92
-  (1.0ms) CREATE UNIQUE INDEX "index_apidae_towns_on_insee_code" ON "apidae_towns" ("insee_code")
93
- ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20170513114002"]]
94
-  (0.4ms) COMMIT
95
- Migrating to AddTownInseeCodeToObjects (20170513114409)
96
-  (40.5ms) BEGIN
97
-  (4.3ms) ALTER TABLE "apidae_objects" ADD "town_insee_code" character varying
98
- ActiveRecord::SchemaMigration Create (0.9ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20170513114409"]]
99
-  (0.4ms) COMMIT
100
- Migrating to AddPicturesDataToObjects (20170513115401)
101
-  (0.2ms) BEGIN
102
-  (0.3ms) ALTER TABLE "apidae_objects" ADD "pictures_data" text
103
- ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20170513115401"]]
104
-  (27.1ms) COMMIT
105
- Migrating to CreateApidaeAttachedFiles (20170513121215)
106
-  (0.3ms) BEGIN
107
-  (24.8ms) CREATE TABLE "apidae_attached_files" ("id" serial NOT NULL PRIMARY KEY, "name" character varying, "credits" character varying, "description" text, "apidae_object_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
108
- ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20170513121215"]]
109
-  (0.4ms) COMMIT
110
- Migrating to RenameObjectsSelectionsTable (20170513205932)
111
-  (33.6ms) BEGIN
112
-  (0.5ms) ALTER TABLE "apidae_objects_apidae_selections" RENAME TO "apidae_objects_selections"
113
-  (0.2ms) ALTER INDEX "apidae_objects_apidae_selections_pkey" RENAME TO "apidae_objects_selections_pkey"
114
-  (0.2ms) ALTER TABLE "public"."apidae_objects_apidae_selections_id_seq" RENAME TO "apidae_objects_selections_id_seq"
115
- ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20170513205932"]]
116
-  (0.2ms) COMMIT
117
- Migrating to AddEntityDataToObjects (20170720161134)
118
-  (0.1ms) BEGIN
119
-  (0.3ms) ALTER TABLE "apidae_objects" ADD "entity_data" text
120
- ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20170720161134"]]
121
-  (40.7ms) COMMIT
122
- Migrating to CreateApidaeFileImports (20170730102424)
123
-  (0.3ms) BEGIN
124
-  (47.6ms) CREATE TABLE "apidae_file_imports" ("id" serial NOT NULL PRIMARY KEY, "status" character varying, "remote_file" character varying, "created" integer, "updated" integer, "deleted" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
125
- ActiveRecord::SchemaMigration Create (0.7ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20170730102424"]]
126
-  (1.2ms) COMMIT
127
- Migrating to CreateApidaeExports (20171025075304)
128
-  (40.4ms) BEGIN
129
-  (5.7ms) CREATE TABLE "apidae_exports" ("id" serial NOT NULL PRIMARY KEY, "status" character varying, "remote_status" character varying, "oneshot" boolean, "reset" boolean, "file_url" character varying, "confirm_url" character varying, "project_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
130
- ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20171025075304"]]
131
-  (0.3ms) COMMIT
132
- Migrating to CreateApidaeSelectionObjects (20180217222410)
133
-  (40.4ms) BEGIN
134
-  (4.2ms) CREATE TABLE "apidae_selection_objects" ("id" bigserial primary key, "apidae_selection_id" integer, "apidae_object_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
135
- ActiveRecord::SchemaMigration Create (0.4ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180217222410"]]
136
-  (0.4ms) COMMIT
137
- Migrating to ChangeTextColumnsToJson (20180218172704)
138
-  (32.6ms) BEGIN
139
-  (6.8ms) ALTER TABLE "apidae_objects" ALTER COLUMN "pictures_data" TYPE jsonb USING pictures_data::text::jsonb
140
-  (3.3ms) ALTER TABLE "apidae_objects" ALTER COLUMN "type_data" TYPE jsonb USING type_data::text::jsonb
141
-  (3.3ms) ALTER TABLE "apidae_objects" ALTER COLUMN "entity_data" TYPE jsonb USING entity_data::text::jsonb
142
-  (3.0ms) ALTER TABLE "apidae_objects" ALTER COLUMN "contact" TYPE jsonb USING contact::text::jsonb
143
-  (2.6ms) ALTER TABLE "apidae_objects" ALTER COLUMN "address" TYPE jsonb USING address::text::jsonb
144
-  (2.8ms) ALTER TABLE "apidae_objects" ALTER COLUMN "openings" TYPE jsonb USING openings::text::jsonb
145
- ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180218172704"]]
146
-  (3.7ms) COMMIT
147
- Migrating to AddServiceDataToApidaeObjects (20180218231319)
148
-  (0.5ms) BEGIN
149
-  (0.5ms) ALTER TABLE "apidae_objects" ADD "service_data" jsonb
150
- ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180218231319"]]
151
-  (40.8ms) COMMIT
152
- Migrating to AddRatesDataToApidaeObjects (20180222104915)
153
-  (0.2ms) BEGIN
154
-  (0.4ms) ALTER TABLE "apidae_objects" ADD "rates_data" jsonb
155
-  (41.4ms) ALTER TABLE "apidae_objects" DROP COLUMN "rates"
156
- ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180222104915"]]
157
-  (0.4ms) COMMIT
158
- Migrating to RenameOpeningsToOpeningsData (20180222105302)
159
-  (0.2ms) BEGIN
160
-  (0.3ms) ALTER TABLE "apidae_objects" RENAME COLUMN "openings" TO "openings_data"
161
- ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180222105302"]]
162
-  (40.6ms) COMMIT
163
- Migrating to AddAttachmentsDataToApidaeObjects (20180307164936)
164
-  (0.2ms) BEGIN
165
-  (0.5ms) ALTER TABLE "apidae_objects" ADD "attachments_data" jsonb
166
- ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180307164936"]]
167
-  (37.6ms) COMMIT
168
- Migrating to CreateApidaeReferences (20180307170349)
169
-  (0.2ms) BEGIN
170
-  (85.3ms) CREATE TABLE "apidae_references" ("id" bigserial primary key, "apidae_id" integer, "apidae_type" character varying, "label_data" jsonb, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
171
-  (41.1ms) CREATE UNIQUE INDEX "index_apidae_references_on_apidae_id" ON "apidae_references" ("apidae_id")
172
- ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180307170349"]]
173
-  (41.1ms) COMMIT
174
- Migrating to AddTagsDataToApidaeObjects (20180314093512)
175
-  (81.8ms) BEGIN
176
-  (0.3ms) ALTER TABLE "apidae_objects" ADD "tags_data" jsonb
177
- ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180314093512"]]
178
-  (40.8ms) COMMIT
179
- Migrating to AddMetaDataToApidaeObjects (20180314132631)
180
-  (0.2ms) BEGIN
181
-  (0.3ms) ALTER TABLE "apidae_objects" ADD "meta_data" jsonb
182
- ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180314132631"]]
183
-  (41.0ms) COMMIT
184
- Migrating to RemoveApidaeIdUnicity (20180319143954)
185
-  (0.1ms) BEGIN
186
-  (0.5ms) DROP INDEX "index_apidae_references_on_apidae_id"
187
-  (1.1ms) CREATE INDEX "index_apidae_references_on_apidae_id" ON "apidae_references" ("apidae_id")
188
- ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180319143954"]]
189
-  (0.5ms) COMMIT
190
- Migrating to AddLocationDataToApidaeObjects (20180417164604)
191
-  (0.3ms) BEGIN
192
-  (0.3ms) ALTER TABLE "apidae_objects" ADD "location_data" jsonb
193
- ActiveRecord::SchemaMigration Create (0.5ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180417164604"]]
194
-  (23.5ms) COMMIT
195
- Migrating to RemoveAddressFromApidaeObjects (20180417165744)
196
-  (0.2ms) BEGIN
197
-  (0.5ms) ALTER TABLE "apidae_objects" DROP COLUMN "address"
198
- ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180417165744"]]
199
-  (23.3ms) COMMIT
200
- Migrating to RemoveLatLngFromApidaeObjects (20180417171344)
201
-  (0.2ms) BEGIN
202
-  (0.6ms) ALTER TABLE "apidae_objects" DROP COLUMN "latitude"
203
-  (0.7ms) ALTER TABLE "apidae_objects" DROP COLUMN "longitude"
204
- ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180417171344"]]
205
-  (20.9ms) COMMIT
206
- Migrating to AddDescriptionDataToApidaeObjects (20180418141248)
207
-  (0.2ms) BEGIN
208
-  (0.4ms) ALTER TABLE "apidae_objects" ADD "description_data" jsonb
209
- ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180418141248"]]
210
-  (22.7ms) COMMIT
211
- Migrating to RemoveDescColumnsFromApidaeObjects (20180418141305)
212
-  (0.2ms) BEGIN
213
-  (0.4ms) ALTER TABLE "apidae_objects" DROP COLUMN "short_desc"
214
-  (0.2ms) ALTER TABLE "apidae_objects" DROP COLUMN "long_desc"
215
- ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180418141305"]]
216
-  (41.3ms) COMMIT
217
- Migrating to AddMetaDataToApidaeReferences (20180424141656)
218
-  (0.2ms) BEGIN
219
-  (0.4ms) ALTER TABLE "apidae_references" ADD "meta_data" jsonb
220
- ActiveRecord::SchemaMigration Create (0.4ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180424141656"]]
221
-  (40.2ms) COMMIT
222
- Migrating to RemoveInseeCodeUnicity (20180519170210)
223
-  (0.2ms) BEGIN
224
-  (0.3ms) DROP INDEX "index_apidae_towns_on_insee_code"
225
-  (41.9ms) CREATE INDEX "index_apidae_towns_on_insee_code" ON "apidae_towns" ("insee_code")
226
- ActiveRecord::SchemaMigration Create (0.4ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180519170210"]]
227
-  (2.8ms) COMMIT
228
- Migrating to DestroyAttachedFiles (20180521211735)
229
-  (0.1ms) BEGIN
230
-  (37.9ms) DROP TABLE "apidae_attached_files"
231
- ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180521211735"]]
232
-  (1.2ms) COMMIT
233
- Migrating to RenameObjectsToObj (20180625050400)
234
-  (0.2ms) BEGIN
235
-  (0.3ms) ALTER TABLE "apidae_objects" RENAME TO "apidae_objs"
236
-  (0.2ms) ALTER INDEX "apidae_objects_pkey" RENAME TO "apidae_objs_pkey"
237
-  (0.2ms) ALTER TABLE "public"."apidae_objects_id_seq" RENAME TO "apidae_objs_id_seq"
238
- ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180625050400"]]
239
-  (40.7ms) COMMIT
240
- Migrating to AddProjectIdToSelections (20181024072424)
241
-  (0.3ms) BEGIN
242
-  (0.4ms) ALTER TABLE "apidae_selections" ADD "apidae_project_id" integer
243
- ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20181024072424"]]
244
-  (34.0ms) COMMIT
245
- Migrating to CreateApidaeProjects (20181024072843)
246
-  (0.3ms) BEGIN
247
-  (43.8ms) CREATE TABLE "apidae_projects" ("id" bigserial primary key, "name" character varying, "apidae_id" integer, "api_key" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
248
- ActiveRecord::SchemaMigration Create (0.4ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20181024072843"]]
249
-  (0.5ms) COMMIT
250
- Migrating to AddApidaeIdToApidaeFileImports (20190111162443)
251
-  (40.4ms) BEGIN
252
-  (0.3ms) ALTER TABLE "apidae_file_imports" ADD "apidae_id" integer
253
- ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190111162443"]]
254
-  (1.9ms) COMMIT
255
- Migrating to UpgradeApidaeObjsTitleDataType (20190123142628)
256
-  (0.1ms) BEGIN
257
-  (0.3ms) ALTER TABLE "apidae_objs" ADD "title_data" jsonb
258
- Apidae::Obj Load (0.4ms) SELECT "apidae_objs".* FROM "apidae_objs"
259
-  (0.3ms) ALTER TABLE "apidae_objs" DROP COLUMN "title"
260
- ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190123142628"]]
261
-  (40.4ms) COMMIT
262
- Migrating to AddBookingDataToApidaeObjs (20190123160046)
263
-  (0.2ms) BEGIN
264
-  (0.3ms) ALTER TABLE "apidae_objs" ADD "booking_data" jsonb
265
- Apidae::Obj Load (0.3ms) SELECT "apidae_objs".* FROM "apidae_objs"
266
-  (0.3ms) ALTER TABLE "apidae_objs" DROP COLUMN "reservation"
267
- ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190123160046"]]
268
-  (40.1ms) COMMIT
269
- Migrating to AddLocalesDataToApidaeProjects (20190123214635)
270
-  (0.2ms) BEGIN
271
-  (0.4ms) ALTER TABLE "apidae_projects" ADD "locales_data" character varying
272
- ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190123214635"]]
273
-  (22.4ms) COMMIT
274
- Migrating to AddVersionToApidaeObjs (20190124162543)
275
-  (0.2ms) BEGIN
276
-  (0.5ms) ALTER TABLE "apidae_objs" ADD "version" character varying
277
-  (0.2ms) ALTER TABLE "apidae_objs" ADD "root_obj_id" integer
278
-  (0.9ms) ALTER TABLE "apidae_projects" ADD "versions_data" character varying
279
- Apidae::Obj Update All (0.5ms) UPDATE "apidae_objs" SET "version" = 'STANDARD' WHERE "apidae_objs"."root_obj_id" IS NULL
280
- ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190124162543"]]
281
-  (40.7ms) COMMIT
282
- Migrating to MigrateLocalizedApidaeObjFields (20190127210921)
283
-  (0.3ms) BEGIN
284
- Apidae::Obj Load (0.6ms) SELECT "apidae_objs".* FROM "apidae_objs" WHERE "apidae_objs"."root_obj_id" IS NULL
285
- ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190127210921"]]
286
-  (39.7ms) COMMIT
287
- Migrating to MigrateLocalizedApidaeReferences (20190127213602)
288
-  (0.2ms) BEGIN
289
- Apidae::Reference Load (0.6ms) SELECT "apidae_references".* FROM "apidae_references"
290
- ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190127213602"]]
291
-  (40.5ms) COMMIT
292
- Migrating to MigrateDescApidaeObjFields (20190304142446)
293
-  (0.4ms) BEGIN
294
- Apidae::Obj Load (0.5ms) SELECT "apidae_objs"."id", "root_obj_id", "apidae_objs"."description_data" FROM "apidae_objs" WHERE "apidae_objs"."root_obj_id" IS NULL
295
- ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190304142446"]]
296
-  (20.7ms) COMMIT
297
- Migrating to AddIndexOnApidaeObj (20190418133435)
298
-  (0.4ms) BEGIN
299
-  (20.4ms) CREATE INDEX "apidae_objs_apidae_id" ON "apidae_objs" ("apidae_id")
300
-  (1.0ms) CREATE INDEX "apidae_objs_root_obj_id" ON "apidae_objs" ("root_obj_id")
301
- ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190418133435"]]
302
-  (0.4ms) COMMIT
303
- Migrating to AddDescriptionToApidaeTowns (20190517153215)
304
-  (0.1ms) BEGIN
305
-  (0.6ms) ALTER TABLE "apidae_towns" ADD "description" character varying
306
- ActiveRecord::SchemaMigration Create (0.5ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190517153215"]]
307
-  (21.5ms) COMMIT
308
- Migrating to AddLastUpdateToApidaeOjbs (20200111214145)
309
-  (0.2ms) BEGIN
310
-  (0.4ms) ALTER TABLE "apidae_objs" ADD "last_update" timestamp
311
- ActiveRecord::SchemaMigration Create (0.6ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20200111214145"]]
312
-  (21.4ms) COMMIT
313
- Migrating to AddOwnerDataToApidaeObjs (20200111214631)
314
-  (0.3ms) BEGIN
315
-  (0.4ms) ALTER TABLE "apidae_objs" ADD "owner_data" jsonb
316
- ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20200111214631"]]
317
-  (23.2ms) COMMIT
318
- Migrating to AddApidaeTypeIndexOnReferences (20200224130804)
319
-  (0.2ms) BEGIN
320
-  (23.3ms) CREATE INDEX "index_apidae_references_on_apidae_type" ON "apidae_references" ("apidae_type")
321
- ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20200224130804"]]
322
-  (0.4ms) COMMIT
323
- Migrating to AddTownInseeCodeIndexToObjs (20200224145802)
324
-  (0.1ms) BEGIN
325
-  (24.5ms) CREATE INDEX "index_apidae_objs_on_town_insee_code" ON "apidae_objs" ("town_insee_code")
326
- ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20200224145802"]]
327
-  (0.4ms) COMMIT
328
- Migrating to AddVersionDataToApidaeObjs (20200312150008)
329
-  (0.2ms) BEGIN
330
-  (0.4ms) ALTER TABLE "apidae_objs" ADD "version_data" jsonb
331
- ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20200312150008"]]
332
-  (24.0ms) COMMIT
333
- Migrating to AddVersionIndexOnApidaeObjs (20200312150904)
334
-  (0.7ms) BEGIN
335
-  (21.8ms) CREATE UNIQUE INDEX "index_apidae_objs_on_root_obj_id_and_version" ON "apidae_objs" ("root_obj_id", "version")
336
- ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20200312150904"]]
337
-  (0.3ms) COMMIT
338
- ActiveRecord::InternalMetadata Load (0.3ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 LIMIT $2 [["key", "environment"], ["LIMIT", 1]]
339
-  (0.2ms) BEGIN
340
- ActiveRecord::InternalMetadata Create (0.4ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "key" [["key", "environment"], ["value", "development"], ["created_at", "2021-07-08 09:47:54.615597"], ["updated_at", "2021-07-08 09:47:54.615597"]]
341
-  (0.3ms) COMMIT
342
-  (0.3ms) SELECT pg_advisory_unlock(6140174353533887940)
343
-  (0.5ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
344
-  (0.2ms) SELECT pg_try_advisory_lock(6140174353533887940)
345
-  (0.5ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
346
- ActiveRecord::InternalMetadata Load (0.4ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 LIMIT $2 [["key", "environment"], ["LIMIT", 1]]
347
-  (0.2ms) BEGIN
348
-  (0.1ms) COMMIT
349
-  (0.2ms) SELECT pg_advisory_unlock(6140174353533887940)
350
-  (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
351
- DEPRECATION WARNING: Initialization autoloaded the constants Apidae::ApidaeHelper, Apidae::ApplicationHelper, Apidae::ApiHelper, Apidae::DashboardHelper, Apidae::ExtendableHelper, Apidae::ImportHelper, Apidae::ObjectsHelper, Apidae::ReferencesHelper, Apidae::SelectionsHelper, and Apidae::ApplicationController.
352
-
353
- Being able to do this is deprecated. Autoloading during initialization is going
354
- to be an error condition in future versions of Rails.
355
-
356
- Reloading does not reboot the application, and therefore code executed during
357
- initialization does not run again. So, if you reload Apidae::ApidaeHelper, for example,
358
- the expected changes won't be reflected in that stale Module object.
359
-
360
- `config.autoloader` is set to `classic`. These autoloaded constants would have been unloaded if `config.autoloader` had been set to `:zeitwerk`.
361
-
362
- In order to autoload safely at boot time, please wrap your code in a reloader
363
- callback this way:
364
-
365
- Rails.application.reloader.to_prepare do
366
- # Autoload classes and modules needed at boot time here.
367
- end
368
-
369
- That block runs when the application boots, and every time there is a reload.
370
- For historical reasons, it may run twice, so it has to be idempotent.
371
-
372
- Check the "Autoloading and Reloading Constants" guide to learn more about how
373
- Rails autoloads and reloads.
374
- (called from <top (required)> at /Users/jbvilain/workspace/code/apidae-engine-rails/test/dummy/config/environment.rb:5)
375
-  (170.6ms) SELECT COUNT(*) FROM "apidae_objs" WHERE "apidae_objs"."root_obj_id" IS NULL
376
- DEPRECATION WARNING: Initialization autoloaded the constants Apidae::ApidaeHelper, Apidae::ApplicationHelper, Apidae::ApiHelper, Apidae::DashboardHelper, Apidae::ExtendableHelper, Apidae::ImportHelper, Apidae::ObjectsHelper, Apidae::ReferencesHelper, Apidae::SelectionsHelper, and Apidae::ApplicationController.
377
-
378
- Being able to do this is deprecated. Autoloading during initialization is going
379
- to be an error condition in future versions of Rails.
380
-
381
- Reloading does not reboot the application, and therefore code executed during
382
- initialization does not run again. So, if you reload Apidae::ApidaeHelper, for example,
383
- the expected changes won't be reflected in that stale Module object.
384
-
385
- `config.autoloader` is set to `classic`. These autoloaded constants would have been unloaded if `config.autoloader` had been set to `:zeitwerk`.
386
-
387
- In order to autoload safely at boot time, please wrap your code in a reloader
388
- callback this way:
389
-
390
- Rails.application.reloader.to_prepare do
391
- # Autoload classes and modules needed at boot time here.
392
- end
393
-
394
- That block runs when the application boots, and every time there is a reload.
395
- For historical reasons, it may run twice, so it has to be idempotent.
396
-
397
- Check the "Autoloading and Reloading Constants" guide to learn more about how
398
- Rails autoloads and reloads.
399
- (called from <top (required)> at /Users/jbvilain/workspace/code/apidae-engine-rails/test/dummy/config/environment.rb:5)
@@ -153,29 +153,6 @@ module Apidae
153
153
  assert_equal 0, Selection.count
154
154
  end
155
155
 
156
- test "object deletion cancelled if used by another project" do
157
- proj = Project.create(apidae_id: 123)
158
- other_proj = Project.create(apidae_id: 456)
159
- sel = Selection.create(apidae_id: 49063, apidae_project_id: proj.id, label: 'Sélection 2', reference: 'selection-2')
160
- other_sel = Selection.create(apidae_id: 49999, apidae_project_id: other_proj.id, label: 'Sélection 99', reference: 'selection-99')
161
- sel.objects << Obj.create(apidae_id: 503, title: 'Société des violoncellistes aixois')
162
- sel.objects << Obj.create(apidae_id: 504, title: 'Société des contrebassistes aixois')
163
- other_sel.objects << Obj.find_by_apidae_id(504)
164
-
165
- assert_equal 2, sel.objects.count
166
- assert_equal 1, other_sel.objects.count
167
-
168
- selections_json = File.read('test/data/shared_selections.json')
169
- FileImport.add_or_update_selections(proj, selections_json, @result)
170
- deletion_json = File.read('test/data/deletion.json')
171
- FileImport.delete_objects(deletion_json, @result)
172
-
173
- assert_equal 2, Obj.count
174
- assert_equal({created: 0, updated: 0, deleted: 1, selections:
175
- [{:apidae_id=>49063, :reference=>"selection-2", :objects=>1}]}, @result)
176
- assert_equal 1, other_sel.objects.count
177
- end
178
-
179
156
  test "full import process" do
180
157
  Obj.create(apidae_id: 123, title: 'Objet à supprimer')
181
158
  Obj.create(apidae_id: 4826186, title: 'Objet à mettre à jour')