apidae 1.2.2 → 1.2.3

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: b11e939316f83f92542ad8f9dd1d61d6a759b221
4
- data.tar.gz: b37d8f51dccc89e83c7f29e7ccb880025482646a
3
+ metadata.gz: 0aba2cd1de094aeef3e30a618807daf0373c30e2
4
+ data.tar.gz: fe93f13f69bfc494f8217c803c4bf0c32f609c73
5
5
  SHA512:
6
- metadata.gz: b6c8fd210ade09f620c897676c89dec75bde2cb94379a6acd69511aeaad495fc080eaad1d14fc0096834e79a7156870a495dde4600f245716b893af8b1458d20
7
- data.tar.gz: 3798b7eab1196ab9f2ff594a4d27d6930732894446d7c8fef0793be046f4a0b9bd5f3255a104528a1ff13a0fe1a2772b1843e1deb96dc8ad90bf2fe832d679a7
6
+ metadata.gz: 362a44da5272c50d931b7511f67c1ce6e001b83e2e3fec284ffcb1641301304eabceb9c1a9e7629665ee6bc5cd47fd6e637057bce37b547e4a4f79b60a833202
7
+ data.tar.gz: 4c182bf514518cb48efe9f0262088486764c6c747d29d93c9e02b9a1c092557ec88d842ab56e7079d4929b549e16dadd9241dfd725628d4ebb9d821a256a8480
@@ -34,17 +34,15 @@ module Apidae
34
34
  def create
35
35
  @obj = Obj.new(object_params)
36
36
  if Obj.find_by_apidae_id(@obj.apidae_id)
37
- redirect_to objects_url, alert: "Cet objet est déjà importé."
38
- else
39
- selection = params[:selection_apidae_id].blank? ? Selection.last : Selection.find_by_apidae_id(params[:selection_apidae_id])
40
- if @obj.save && selection.add_or_refresh_obj(@obj.apidae_id)
41
- redirect_to objects_url, notice: "L'objet a bien été importé"
42
- else
43
- flash[:alert] = "Une erreur s'est produite lors de l'import de l'objet."
44
- render :new
37
+ redirect_to objects_url, alert: "Cet objet est déjà importé." and return
38
+ elsif !params[:selection_apidae_id].blank?
39
+ selection = Selection.find_by_apidae_id(params[:selection_apidae_id])
40
+ if selection && selection.valid_api? && @obj.save && selection.add_or_refresh_obj(@obj.apidae_id)
41
+ redirect_to objects_url, notice: "L'objet a bien été importé" and return
45
42
  end
46
43
  end
47
-
44
+ flash[:alert] = "Une erreur s'est produite lors de l'import de l'objet."
45
+ render :new
48
46
  end
49
47
 
50
48
  def update
@@ -63,7 +61,8 @@ module Apidae
63
61
  def refresh
64
62
  referrer = (session.delete(:referrer) || objects_url)
65
63
  begin
66
- if @obj && @obj.selections.first.add_or_refresh_obj(@obj.apidae_id)
64
+ sel = @obj.selections.find {|s| s.valid_api?}
65
+ if sel && sel.add_or_refresh_obj(@obj.apidae_id)
67
66
  redirect_to referrer, notice: "L'objet touristique a bien été mis à jour."
68
67
  else
69
68
  redirect_to referrer, alert: "Une erreur s'est produite lors de la mise à jour de l'objet."
@@ -245,7 +245,7 @@ module Apidae
245
245
  def self.parse_rates(rates_hash, *locales)
246
246
  if rates_hash
247
247
  desc = rates_hash[:gratuit] ? {DEFAULT_LOCALE => 'gratuit'} : node_value(rates_hash, :tarifsEnClair, *locales)
248
- values = rates_hash[:periodes].blank? ? [] : rates_hash[:periodes].map {|p| build_rate(p)}
248
+ values = rates_hash[:periodes].blank? ? [] : rates_hash[:periodes].map {|p| build_rate(p, *locales)}
249
249
  methods = rates_hash[:modesPaiement].blank? ? [] : rates_hash[:modesPaiement].map {|p| p[:id]}
250
250
  {
251
251
  rates_desc: desc, rates: values, payment_methods: methods,
@@ -346,10 +346,10 @@ module Apidae
346
346
 
347
347
  private
348
348
 
349
- def self.build_rate(rate_period)
349
+ def self.build_rate(rate_period, *locales)
350
350
  {
351
351
  id: rate_period[:identifiant], start_date: rate_period[:dateDebut], end_date: rate_period[:dateFin],
352
- 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)}}
352
+ 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, *locales)}}
353
353
  }
354
354
  end
355
355
 
@@ -50,6 +50,10 @@ module Apidae
50
50
  objects.where(where_clause).count
51
51
  end
52
52
 
53
+ def valid_api?
54
+ apidae_project && !apidae_project.api_key.blank? && !apidae_project.apidae_id.blank?
55
+ end
56
+
53
57
  def api_results(opts = {})
54
58
  key = cache_key(:results)
55
59
  res = $apidae_cache.read(key)
@@ -89,7 +93,7 @@ module Apidae
89
93
  end
90
94
 
91
95
  def add_or_refresh_obj(apidae_obj_id)
92
- if apidae_project
96
+ if valid_api?
93
97
  res = api_object(apidae_obj_id)
94
98
  if res[:results] && res[:results].length == 1
95
99
  obj_data = res[:results].first.deep_symbolize_keys
@@ -99,7 +103,7 @@ module Apidae
99
103
  end
100
104
 
101
105
  def add_or_refresh_objs(fields = ["@all"])
102
- if apidae_project
106
+ if valid_api?
103
107
  res = api_objects({fields: fields})
104
108
  if res[:results] && res[:results].length > 0
105
109
  res[:results].each do |result|
@@ -1,3 +1,3 @@
1
1
  module Apidae
2
- VERSION = "1.2.2"
2
+ VERSION = "1.2.3"
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.2
4
+ version: 1.2.3
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-06-24 00:00:00.000000000 Z
11
+ date: 2020-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails