apidae 0.3.6 → 0.4.0

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
  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