apidae 1.2.4 → 1.2.9

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: e45899b8d14f77793f2dc9d928f2c2aa6eba0dad
4
- data.tar.gz: 3123ee0afa071eea4db09c3484de7916be2c6529
3
+ metadata.gz: 2be2cf907e5a637962c70ddfde7fb4c2fab3f898
4
+ data.tar.gz: f71204e522ad70932deb15a8c2dd0330ddbdefa0
5
5
  SHA512:
6
- metadata.gz: '059806981d7ed7c469a45cda41072dceb8384d1cc5943089f42e766378a444d516a2e728d48e0335eea1da411673053e296ed6cf3c4cf309f4c9f45ccbb2faaf'
7
- data.tar.gz: fde56d7ce57fef6fc0b984cfba695e80e22d63b52d4b258807edabedb3952f2ca5adbcca3510512445a4a90e4361f54c51142318a836e2f6cb8ad0db880d914d
6
+ metadata.gz: 4176569bfe745b9f7391435ccd898cb5b3cdd2560febbca15ecd8500cdf00a7d7a01642a2ff9aa36f12c405c3db6c8e451d4c3e4ac61aa7fb7dab2cde377f824
7
+ data.tar.gz: e6f83af4e0b1d8688ebf5dae737ded92335d41196ec48ab7205875f8d54e11cf4971afd7ebd91bf5491a48e033ca0bcfef3c0a93ae4febb091cd32083350f4c4
@@ -151,6 +151,7 @@ module Apidae
151
151
  name: localized_value(att, :nom, locale),
152
152
  url: att[:traductionFichiers][0][:url].gsub('http:', 'https:'),
153
153
  type: att[:type],
154
+ link: att[:link],
154
155
  description: localized_value(att, :legende, locale)
155
156
  }
156
157
  end
@@ -236,6 +237,7 @@ module Apidae
236
237
  openings_desc: node_value(openings_hash, :periodeEnClair, *locales),
237
238
  openings_desc_mode: openings_hash[:periodeEnClairGenerationMode] == 'AUTOMATIQUE' ? MODE_AUTO : MODE_MANUAL,
238
239
  openings: build_openings(openings_hash, *locales),
240
+ all_year_long: openings_hash[:ouvertTouteLAnnee] == 'OUVERT_TOUTE_L_ANNEE' ? 'true' : 'false',
239
241
  time_periods: lists_ids(openings_hash[:indicationsPeriode]),
240
242
  openings_extra: lists_ids(openings_hash[:ouverturesComplementaires])
241
243
  }
@@ -335,10 +337,15 @@ module Apidae
335
337
  end
336
338
  end
337
339
 
338
- def self.parse_entity_fields(information_hash, type_data_hash)
340
+ def self.parse_entity_fields(information_hash, type_data_hash, sp_hash)
341
+ entity_hash = {}
339
342
  if information_hash && information_hash[:structureGestion]
340
- {entity_id: information_hash[:structureGestion][:id], service_provider_id: node_id(type_data_hash, :prestataireActivites)}
343
+ entity_hash.merge!({entity_id: information_hash[:structureGestion][:id], service_provider_id: node_id(type_data_hash, :prestataireActivites)})
341
344
  end
345
+ if sp_hash && sp_hash[:prestataireActivites]
346
+ entity_hash[:is_service_provider] = true
347
+ end
348
+ entity_hash
342
349
  end
343
350
 
344
351
  def self.node_id(node, key)
@@ -7,6 +7,7 @@ module Apidae
7
7
 
8
8
  attr_accessor :locale
9
9
  attr_accessor :obj_version
10
+ attr_accessor :obj_versions
10
11
 
11
12
  store_accessor :title_data, :title
12
13
  store_accessor :owner_data, :owner_name, :owner_id
@@ -15,7 +16,7 @@ module Apidae
15
16
  store_accessor :attachments_data, :attachments
16
17
  store_accessor :type_data, :categories, :themes, :capacity, :classification, :labels, :chains, :area, :track,
17
18
  :products, :audience, :animals, :animals_desc, :extra, :duration, :certifications, :business
18
- store_accessor :entity_data, :entity_id, :entity_name, :service_provider_id
19
+ store_accessor :entity_data, :entity_id, :entity_name, :service_provider_id, :is_service_provider
19
20
  store_accessor :contact_data, :telephone, :email, :website, :google, :facebook, :twitter, :yelp, :trip_advisor, :fax,
20
21
  :mobile_website, :shorty_url, :contacts
21
22
  store_accessor :location_data, :address, :place, :latitude, :longitude, :access, :territories, :environments
@@ -83,7 +84,7 @@ module Apidae
83
84
  COS => {node: :informationsCommerceEtService, subtype: :commerceEtServiceType},
84
85
  DEG => {node: :informationsDegustation, subtype: :degustationType},
85
86
  DOS => {node: :informationsDomaineSkiable, subtype: :domaineSkiableType},
86
- EQU => {node: :informationsEquipement, subtype: :equipementType},
87
+ EQU => {node: :informationsEquipement, subtype: :rubrique},
87
88
  FEM => {node: :informationsFeteEtManifestation, subtype: :feteEtManifestationType},
88
89
  HCO => {node: :informationsHebergementCollectif, subtype: :hebergementCollectifType},
89
90
  HLO => {node: :informationsHebergementLocatif, subtype: :hebergementLocatifType},
@@ -100,6 +101,7 @@ module Apidae
100
101
  after_initialize do
101
102
  @locale = DEFAULT_LOCALE
102
103
  @obj_version = DEFAULT_VERSION
104
+ @obj_versions = {}
103
105
  end
104
106
 
105
107
  def root_obj
@@ -111,11 +113,15 @@ module Apidae
111
113
  end
112
114
 
113
115
  def in_version(v)
114
- @cached_versions ||= {}
115
- if @cached_versions[v].nil?
116
- @cached_versions[v] = versions.where(version: v).first
116
+ if v == DEFAULT_VERSION && root_obj_id.nil?
117
+ @obj_version = DEFAULT_VERSION
118
+ self
119
+ else
120
+ if @obj_versions[v].nil?
121
+ @obj_versions[v] = versions.where(version: v).first
122
+ end
123
+ @obj_versions[v]
117
124
  end
118
- @cached_versions[v]
119
125
  end
120
126
 
121
127
  def in_locale(l)
@@ -164,6 +170,7 @@ module Apidae
164
170
  apidae_obj
165
171
  end
166
172
 
173
+ # Note : overrides existing fields (not a merge)
167
174
  def self.populate_fields(apidae_obj, object_data, locales)
168
175
  type_fields = TYPES_DATA[object_data[:type]]
169
176
  apidae_obj.last_update = DateTime.parse(object_data[:gestion][:dateModification]) unless object_data[:gestion].blank?
@@ -183,7 +190,7 @@ module Apidae
183
190
  object_data[:tourismeAffaires], *locales)
184
191
  apidae_obj.pictures_data = ApidaeDataParser.parse_pictures_data(object_data[:illustrations], *locales)
185
192
  apidae_obj.attachments_data = ApidaeDataParser.parse_attachments_data(object_data[:multimedias], *locales)
186
- apidae_obj.entity_data = ApidaeDataParser.parse_entity_fields(object_data[:informations], object_data[type_fields[:node]])
193
+ apidae_obj.entity_data = ApidaeDataParser.parse_entity_fields(object_data[:informations], object_data[type_fields[:node]], object_data[:informationsPrestataireActivites])
187
194
  apidae_obj.service_data = ApidaeDataParser.parse_service_data(object_data[:prestations], object_data[type_fields[:node]])
188
195
  apidae_obj.tags_data = ApidaeDataParser.parse_tags_data(object_data[:presentation], object_data[:criteresInternes], object_data[:liens])
189
196
  apidae_obj.meta_data = object_data[:metadonnees]
@@ -10,7 +10,7 @@ module Apidae
10
10
  end
11
11
 
12
12
  def self.import(refs_json)
13
- locales = Rails.application.config.respond_to?(:apidae_locales) ? Rails.application.config.apidae_locales : [DEFAULT_LOCALE]
13
+ locales = Rails.application.config.respond_to?(:apidae_locales) ? Rails.application.config.apidae_locales : [DEFAULT_LOCALE]
14
14
  locales_map = Hash[locales.map {|loc| ["libelle#{loc.camelize.gsub('-', '')}".to_sym, loc]}]
15
15
  refs_hashes = JSON.parse(refs_json, symbolize_names: true)
16
16
  if refs_hashes.length != where("apidae_type != ?", INTERNAL).count
@@ -92,9 +92,10 @@ module Apidae
92
92
  query_api(query_args, true, false)
93
93
  end
94
94
 
95
- def add_or_refresh_obj(apidae_obj_id)
95
+ # Note : WARNING - updated obj will only contain the provided fields
96
+ def add_or_refresh_obj(apidae_obj_id, fields = ["@all"])
96
97
  if valid_api?
97
- res = api_object(apidae_obj_id)
98
+ res = api_object(apidae_obj_id, fields)
98
99
  if res[:results] && res[:results].length == 1
99
100
  obj_data = res[:results].first.deep_symbolize_keys
100
101
  add_or_refresh(obj_data)
@@ -102,6 +103,7 @@ module Apidae
102
103
  end
103
104
  end
104
105
 
106
+ # Note : WARNING - updated objs will only contain the provided fields
105
107
  def add_or_refresh_objs(fields = ["@all"])
106
108
  if valid_api?
107
109
  res = api_objects({fields: fields})
@@ -8,9 +8,10 @@ module Apidae
8
8
  LOCALE_ZH = 'zh'
9
9
  LOCALE_ES = 'es'
10
10
  LOCALE_PT_BR = 'pt-BR'
11
+ LOCALE_JP = 'jp'
11
12
 
12
13
  DEFAULT_LOCALE = LOCALE_FR
13
- ALL_LOCALES = [LOCALE_FR, LOCALE_EN, LOCALE_IT, LOCALE_DE, LOCALE_NL, LOCALE_RU, LOCALE_ZH, LOCALE_ES, LOCALE_PT_BR]
14
+ ALL_LOCALES = [LOCALE_FR, LOCALE_EN, LOCALE_IT, LOCALE_DE, LOCALE_NL, LOCALE_RU, LOCALE_ZH, LOCALE_ES, LOCALE_PT_BR, LOCALE_JP]
14
15
 
15
16
  STANDARD_VERSION = 'STANDARD'
16
17
  WINTER_VERSION = 'HIVER'
@@ -24,8 +25,11 @@ module Apidae
24
25
  ALL_VERSIONS = [STANDARD_VERSION, WINTER_VERSION, SUMMER_VERSION, CHALLENGED_VERSION, BUSINESS_VERSION,
25
26
  GROUPS_VERSION, ACTIVITIES_VERSION]
26
27
 
27
- LOCALIZED_FIELDS = [:title, :short_desc, :long_desc, :pictures, :attachments, :openings_desc, :rates_desc,
28
- :includes, :excludes, :extra, :booking_desc]
29
- ALL_FIELDS = LOCALIZED_FIELDS + [:theme_desc, :private_desc, :capacity, :telephone, :email, :website, :services,
28
+ LOCALIZED_FIELDS = [:title, :short_desc, :long_desc, :pictures, :attachments,
29
+ :openings_desc, :rates_desc, :includes, :excludes, :extra, :booking_desc]
30
+ ALL_FIELDS = LOCALIZED_FIELDS + [:theme_desc, :private_desc, :capacity, :telephone, :email, :website,
31
+ :google, :facebook, :twitter, :yelp, :trip_advisor, :fax, :mobile_website, :shorty_url,
32
+ :openings, :rates, :services, :payment_methods, :categories, :themes, :labels, :chains,
33
+ :classification, :challenged, :environments, :languages, :products, :animals,
30
34
  :equipments, :comfort, :activities, :promo, :internal, :linked]
31
35
  end
@@ -41,6 +41,7 @@ fr:
41
41
  ru: Russe
42
42
  zh: Chinois
43
43
  'pt-BR': Brésilien
44
+ jp: Japonais
44
45
  versions:
45
46
  STANDARD: Standard
46
47
  HIVER: Hiver
@@ -1,3 +1,3 @@
1
1
  module Apidae
2
- VERSION = "1.2.4"
2
+ VERSION = "1.2.9"
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.4
4
+ version: 1.2.9
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: 2020-07-06 00:00:00.000000000 Z
11
+ date: 2020-12-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails