apidae 0.3.6 → 0.4.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
2
  SHA1:
3
- metadata.gz: 97cacc692289fdb612cad0f9adbf6fcf78f620bb
4
- data.tar.gz: 9e97ba3558c0b225816f27714c10462313f4d586
3
+ metadata.gz: 60148050e39da7ee11f5ad3b5763f8974359e97c
4
+ data.tar.gz: 676823e12e5f3672229f13c2b5f6fff6ec83ddf6
5
5
  SHA512:
6
- metadata.gz: 34afc260f113771be502374a0b23a68fe32298ceedf39f5ca5ea62c00f0a67e43119ed921d4708823bb153fa361a1545cf9064c9c2ad9e2e83ee81886663ead3
7
- data.tar.gz: b79659180c93fceb6e803f5c3b1e0ad059902c01a1c050e8b36d3c35d7873000a0a8ad44fbac2bbe35ea16a5da553131976b7f1103b93817084275451fd7f331
6
+ metadata.gz: cd2224c5903a85ea614d39f360c27d02fb1d71fd40de52bd62101f84feb8d62c898736da212abf136287b7290685edf025fd4c2e358670953107b1376a15e5ad
7
+ data.tar.gz: 503d4a38cbcf23e52a101ead6eedcbb901566143e75bb04cf1e9f3b93c999871b686bfc924bcce5266e67e7f84116858a20dbd939ca8ac68a5a8e983b97acc98
@@ -6,13 +6,15 @@ module Apidae
6
6
  has_many :apidae_selection_objects, class_name: 'Apidae::SelectionObject', foreign_key: :apidae_object_id
7
7
  has_many :selections, class_name: 'Apidae::Selection', source: :apidae_selection, through: :apidae_selection_objects
8
8
 
9
+ store_accessor :description_data, :short_desc, :long_desc, :theme_desc
9
10
  store_accessor :pictures_data, :pictures
10
11
  store_accessor :attachments_data, :attachments
11
- store_accessor :type_data, :categories, :themes, :capacity, :classification, :labels, :chains, :area, :track
12
+ store_accessor :type_data, :categories, :themes, :capacity, :classification, :labels, :chains, :area, :track,
13
+ :products, :audience, :animals, :extra, :duration
12
14
  store_accessor :entity_data, :entity_id, :entity_name
13
15
  store_accessor :contact, :telephone, :email, :website
14
- store_accessor :address, :address_fields, :place
15
- store_accessor :openings_data, :openings_desc, :openings
16
+ store_accessor :location_data, :address, :place, :latitude, :longitude, :access
17
+ store_accessor :openings_data, :openings_desc, :openings, :time_periods
16
18
  store_accessor :rates_data, :rates_desc, :rates, :payment_methods
17
19
  store_accessor :service_data, :services, :equipments, :comfort, :activities
18
20
  store_accessor :tags_data, :promo, :internal
@@ -67,13 +69,10 @@ module Apidae
67
69
  apidae_obj.apidae_type = object_data[:type]
68
70
  apidae_obj.apidae_subtype = node_id(object_data[type_fields[:node]], type_fields[:subtype])
69
71
  apidae_obj.title = node_value(object_data, :nom)
70
- apidae_obj.short_desc = node_value(object_data[:presentation], :descriptifCourt)
71
- apidae_obj.long_desc = node_value(object_data[:presentation], :descriptifDetaille)
72
+ apidae_obj.description_data = parse_desc_data(object_data[:presentation])
72
73
  apidae_obj.contact = contact(object_data[:informations])
73
- apidae_obj.address = address(object_data[:localisation][:adresse], object_data[type_fields[:node]])
74
+ apidae_obj.location_data = parse_location_data(object_data[:localisation], object_data[type_fields[:node]])
74
75
  apidae_obj.town = town(object_data[:localisation][:adresse])
75
- apidae_obj.latitude = latitude(object_data[:localisation])
76
- apidae_obj.longitude = longitude(object_data[:localisation])
77
76
  apidae_obj.openings_data = parse_openings(object_data[:ouverture])
78
77
  apidae_obj.rates_data = parse_rates(object_data[:descriptionTarif])
79
78
  apidae_obj.reservation = parse_reservation(object_data[:reservation])
@@ -87,6 +86,16 @@ module Apidae
87
86
  apidae_obj.save!
88
87
  end
89
88
 
89
+ def self.parse_desc_data(data_hash)
90
+ unless data_hash.blank?
91
+ {
92
+ short_desc: node_value(data_hash, :descriptifCourt),
93
+ long_desc: node_value(data_hash, :descriptifDetaille),
94
+ theme_desc: data_hash[:descriptifsThematises].blank? ? [] : Hash[data_hash[:descriptifsThematises].map {|th| [node_id(th, :theme), node_value(th, :description)]}]
95
+ }
96
+ end
97
+ end
98
+
90
99
  def self.pictures_urls(pictures_array)
91
100
  pics_data = []
92
101
  unless pictures_array.blank?
@@ -135,37 +144,37 @@ module Apidae
135
144
  contact_details
136
145
  end
137
146
 
138
- def self.address(address_hash, type_data_hash)
139
- computed_address = []
140
- unless address_hash.blank?
141
- computed_address << address_hash[:adresse1] unless address_hash[:adresse1].blank?
142
- computed_address << address_hash[:adresse2] unless address_hash[:adresse2].blank?
143
- computed_address << address_hash[:adresse3] unless address_hash[:adresse3].blank?
144
- end
145
- {address_fields: computed_address, place: type_data_hash[:nomLieu]}
146
- end
147
-
148
- def self.town(address_hash = {})
149
- (!address_hash.blank? && address_hash[:commune]) ? Town.find_by_apidae_id(address_hash[:commune][:id]) : nil
150
- end
151
-
152
- def self.latitude(location_hash)
147
+ def self.parse_location_data(location_hash, type_data_hash)
153
148
  unless location_hash.blank?
149
+ address_hash = location_hash[:adresse]
150
+ computed_address = []
151
+ unless address_hash.blank?
152
+ computed_address << address_hash[:adresse1] unless address_hash[:adresse1].blank?
153
+ computed_address << address_hash[:adresse2] unless address_hash[:adresse2].blank?
154
+ computed_address << address_hash[:adresse3] unless address_hash[:adresse3].blank?
155
+ end
156
+ loc_data = {address: computed_address, place: type_data_hash[:nomLieu]}
154
157
  geoloc_details = location_hash[:geolocalisation]
155
- (geoloc_details && geoloc_details[:valide] && geoloc_details[:geoJson]) ? geoloc_details[:geoJson][:coordinates][1] : nil
158
+ if geoloc_details && geoloc_details[:valide] && geoloc_details[:geoJson]
159
+ loc_data[:latitude] = geoloc_details[:geoJson][:coordinates][1]
160
+ loc_data[:longitude] = geoloc_details[:geoJson][:coordinates][0]
161
+ end
162
+ loc_data[:access] = node_value(geoloc_details, :complement) if geoloc_details
163
+ loc_data
156
164
  end
157
165
  end
158
166
 
159
- def self.longitude(location_hash = {})
160
- unless location_hash.blank?
161
- geoloc_details = location_hash[:geolocalisation]
162
- (geoloc_details && geoloc_details[:valide] && geoloc_details[:geoJson]) ? geoloc_details[:geoJson][:coordinates][0] : nil
163
- end
167
+ def self.town(address_hash = {})
168
+ (!address_hash.blank? && address_hash[:commune]) ? Town.find_by_apidae_id(address_hash[:commune][:id]) : nil
164
169
  end
165
170
 
166
171
  def self.parse_openings(openings_hash)
167
172
  if openings_hash && openings_hash[:periodeEnClair]
168
- {openings_desc: openings_hash[:periodeEnClair][:libelleFr], openings: openings_hash[:periodesOuvertures]}
173
+ {
174
+ openings_desc: openings_hash[:periodeEnClair][:libelleFr],
175
+ openings: openings_hash[:periodesOuvertures],
176
+ time_periods: lists_ids(openings_hash[:indicationsPeriode])
177
+ }
169
178
  end
170
179
  end
171
180
 
@@ -181,8 +190,9 @@ module Apidae
181
190
  def self.parse_type_data(apidae_obj, data_hash, prestations_hash)
182
191
  if data_hash
183
192
  apidae_obj.apidae_subtype = lists_ids(data_hash[:typesManifestation]).first if apidae_obj.apidae_type == FEM
193
+ apidae_obj.apidae_subtype = node_id(data_hash, :rubrique) if apidae_obj.apidae_type == EQU
184
194
  {
185
- categories: lists_ids(data_hash[:categories]),
195
+ categories: lists_ids(data_hash[:categories], data_hash[:typesDetailles]),
186
196
  themes: lists_ids(data_hash[:themes]),
187
197
  capacity: data_hash[:capacite],
188
198
  classification: nodes_ids(data_hash[:classement], data_hash[:classementPrefectoral], data_hash[:classification]) +
@@ -190,7 +200,12 @@ module Apidae
190
200
  labels: lists_ids(data_hash[:labels], prestations_hash[:labelsTourismeHandicap]),
191
201
  chains: lists_ids(data_hash[:chaines]) + nodes_ids(data_hash[:chaineEtLabel]),
192
202
  area: apidae_obj.apidae_type == DOS ? data_hash.except(:classification) : nil,
193
- track: apidae_obj.apidae_type == EQU ? data_hash[:itineraire] : nil
203
+ track: apidae_obj.apidae_type == EQU ? data_hash[:itineraire] : nil,
204
+ products: lists_ids(data_hash[:typesProduit]),
205
+ audience: lists_ids(prestations_hash[:typesClientele]),
206
+ animals: prestations_hash[:animauxAcceptes] == 'ACCEPTES',
207
+ extra: node_value(prestations_hash, :complementAccueil),
208
+ duration: data_hash[:dureeSeance]
194
209
  }
195
210
  end
196
211
  end
@@ -0,0 +1,5 @@
1
+ class AddLocationDataToApidaeObjects < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :apidae_objects, :location_data, :jsonb
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class RemoveAddressFromApidaeObjects < ActiveRecord::Migration[5.1]
2
+ def change
3
+ remove_column :apidae_objects, :address
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ class RemoveLatLngFromApidaeObjects < ActiveRecord::Migration[5.1]
2
+ def change
3
+ remove_column :apidae_objects, :latitude
4
+ remove_column :apidae_objects, :longitude
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ class AddDescriptionDataToApidaeObjects < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :apidae_objects, :description_data, :jsonb
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ class RemoveDescColumnsFromApidaeObjects < ActiveRecord::Migration[5.1]
2
+ def change
3
+ remove_column :apidae_objects, :short_desc
4
+ remove_column :apidae_objects, :long_desc
5
+ end
6
+ end
@@ -1,3 +1,3 @@
1
1
  module Apidae
2
- VERSION = "0.3.6"
2
+ VERSION = "0.4.0"
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: 0.3.6
4
+ version: 0.4.0
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: 2018-04-10 00:00:00.000000000 Z
11
+ date: 2018-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -137,6 +137,11 @@ files:
137
137
  - db/migrate/20180314093512_add_tags_data_to_apidae_objects.rb
138
138
  - db/migrate/20180314132631_add_meta_data_to_apidae_objects.rb
139
139
  - db/migrate/20180319143954_remove_apidae_id_unicity.rb
140
+ - db/migrate/20180417164604_add_location_data_to_apidae_objects.rb
141
+ - db/migrate/20180417165744_remove_address_from_apidae_objects.rb
142
+ - db/migrate/20180417171344_remove_lat_lng_from_apidae_objects.rb
143
+ - db/migrate/20180418141248_add_description_data_to_apidae_objects.rb
144
+ - db/migrate/20180418141305_remove_desc_columns_from_apidae_objects.rb
140
145
  - lib/apidae.rb
141
146
  - lib/apidae/engine.rb
142
147
  - lib/apidae/version.rb