apidae 1.2.2 → 1.2.3

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