apidae 1.1.0 → 1.2.2

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: f69774e7655cd66923973e23882e6d1d0df0cb2a
4
- data.tar.gz: 199df4ea7f45f563e569f9e1229dfdd012f6a2db
3
+ metadata.gz: b11e939316f83f92542ad8f9dd1d61d6a759b221
4
+ data.tar.gz: b37d8f51dccc89e83c7f29e7ccb880025482646a
5
5
  SHA512:
6
- metadata.gz: 671a682f09badf6919a55227c7366478c23bc74456fd58669101ac7a4c9462a5c08cd32a1a58711652bb484c39867c106d338afd9989f08b759af5c4dab375de
7
- data.tar.gz: f7ba0f5be1b236da982b133e682c454ff251a1848927db75f54dd827ee0367e4b38a2fa93884dc64aebc29d60bfe04a307d25b33a10cc268ddd4ab82ce786ce5
6
+ metadata.gz: b6c8fd210ade09f620c897676c89dec75bde2cb94379a6acd69511aeaad495fc080eaad1d14fc0096834e79a7156870a495dde4600f245716b893af8b1458d20
7
+ data.tar.gz: 3798b7eab1196ab9f2ff594a4d27d6930732894446d7c8fef0793be046f4a0b9bd5f3255a104528a1ff13a0fe1a2772b1843e1deb96dc8ad90bf2fe832d679a7
@@ -91,6 +91,11 @@ module Apidae
91
91
  logger.error("Error is : #{err}")
92
92
  success = false
93
93
  e.update(status: Export::CANCELLED)
94
+ rescue Exception => e
95
+ logger.error "Failed to import file : #{e.file_url}"
96
+ logger.error("Error is : #{err}")
97
+ success = false
98
+ e.update(status: Export::CANCELLED)
94
99
  end
95
100
  success
96
101
  end
@@ -62,9 +62,19 @@ module Apidae
62
62
 
63
63
  def refresh
64
64
  referrer = (session.delete(:referrer) || objects_url)
65
- if @obj && @obj.selections.first.add_or_refresh_obj(@obj.apidae_id)
66
- redirect_to referrer, notice: "L'objet touristique a bien été mis à jour."
67
- else
65
+ begin
66
+ if @obj && @obj.selections.first.add_or_refresh_obj(@obj.apidae_id)
67
+ redirect_to referrer, notice: "L'objet touristique a bien été mis à jour."
68
+ else
69
+ redirect_to referrer, alert: "Une erreur s'est produite lors de la mise à jour de l'objet."
70
+ end
71
+ rescue OpenURI::HTTPError => err
72
+ logger.error("Failed to refresh obj : #{@obj.apidae_id}")
73
+ logger.error("Error is : #{err}")
74
+ redirect_to referrer, alert: "Une erreur s'est produite lors de la mise à jour de l'objet. Veuillez vérifier que le projet Apidae comporte une clé API valide."
75
+ rescue Exception => ex
76
+ logger.error("Failed to refresh obj : #{@obj.apidae_id}")
77
+ logger.error("Error is : #{err}")
68
78
  redirect_to referrer, alert: "Une erreur s'est produite lors de la mise à jour de l'objet."
69
79
  end
70
80
  end
@@ -3,6 +3,7 @@ require_dependency "apidae/application_controller"
3
3
  module Apidae
4
4
  class ProjectsController < ApplicationController
5
5
  before_action :set_project, only: [:edit, :update, :destroy]
6
+ skip_before_action :check_user_data!, only: [:create]
6
7
 
7
8
  def index
8
9
  if user_is_admin?
@@ -9,6 +9,9 @@ module Apidae
9
9
  TWITTER = 3755
10
10
  YELP = 4007
11
11
  TRIP_ADVISOR = 4000
12
+ FAX = 202
13
+ MOBILE_WEBSITE = 3769
14
+ SHORTY_URL = 4923
12
15
 
13
16
  CONTACTS_MAP = {
14
17
  'telephone' => PHONE,
@@ -18,7 +21,10 @@ module Apidae
18
21
  'google' => GOOGLE,
19
22
  'trip_advisor' => TRIP_ADVISOR,
20
23
  'twitter' => TWITTER,
21
- 'yelp' => YELP
24
+ 'yelp' => YELP,
25
+ 'fax' => FAX,
26
+ 'mobile_website' => MOBILE_WEBSITE,
27
+ 'shorty_url' => SHORTY_URL
22
28
  }
23
29
 
24
30
  MODE_AUTO = 'auto'
@@ -161,28 +167,37 @@ module Apidae
161
167
  case c[:type][:id]
162
168
  when PHONE, ALT_PHONE
163
169
  contact_details[:telephone] ||= {}
164
- contact_details[:telephone][c[:identifiant]] = c[:coordonnees][:fr]
170
+ contact_details[:telephone][c[:identifiant]] = {value: c[:coordonnees][:fr], description: c.dig(:observation, :libelleFr)}
165
171
  when EMAIL
166
172
  contact_details[:email] ||= {}
167
- contact_details[:email][c[:identifiant]] = c[:coordonnees][:fr]
173
+ contact_details[:email][c[:identifiant]] = {value: c[:coordonnees][:fr], description: c.dig(:observation, :libelleFr)}
168
174
  when WEBSITE
169
175
  contact_details[:website] ||= {}
170
- contact_details[:website][c[:identifiant]] = c[:coordonnees][:fr]
176
+ contact_details[:website][c[:identifiant]] = {value: c[:coordonnees][:fr], description: c.dig(:observation, :libelleFr)}
171
177
  when GOOGLE
172
178
  contact_details[:google] ||= {}
173
- contact_details[:google][c[:identifiant]] = c[:coordonnees][:fr]
179
+ contact_details[:google][c[:identifiant]] = {value: c[:coordonnees][:fr], description: c.dig(:observation, :libelleFr)}
174
180
  when FACEBOOK
175
181
  contact_details[:facebook] ||= {}
176
- contact_details[:facebook][c[:identifiant]] = c[:coordonnees][:fr]
182
+ contact_details[:facebook][c[:identifiant]] = {value: c[:coordonnees][:fr], description: c.dig(:observation, :libelleFr)}
177
183
  when TWITTER
178
184
  contact_details[:twitter] ||= {}
179
- contact_details[:twitter][c[:identifiant]] = c[:coordonnees][:fr]
185
+ contact_details[:twitter][c[:identifiant]] = {value: c[:coordonnees][:fr], description: c.dig(:observation, :libelleFr)}
180
186
  when YELP
181
187
  contact_details[:yelp] ||= {}
182
- contact_details[:yelp][c[:identifiant]] = c[:coordonnees][:fr]
188
+ contact_details[:yelp][c[:identifiant]] = {value: c[:coordonnees][:fr], description: c.dig(:observation, :libelleFr)}
183
189
  when TRIP_ADVISOR
184
190
  contact_details[:trip_advisor] ||= {}
185
- contact_details[:trip_advisor][c[:identifiant]] = c[:coordonnees][:fr]
191
+ contact_details[:trip_advisor][c[:identifiant]] = {value: c[:coordonnees][:fr], description: c.dig(:observation, :libelleFr)}
192
+ when FAX
193
+ contact_details[:fax] ||= {}
194
+ contact_details[:fax][c[:identifiant]] = {value: c[:coordonnees][:fr], description: c.dig(:observation, :libelleFr)}
195
+ when MOBILE_WEBSITE
196
+ contact_details[:mobile_website] ||= {}
197
+ contact_details[:mobile_website][c[:identifiant]] = {value: c[:coordonnees][:fr], description: c.dig(:observation, :libelleFr)}
198
+ when SHORTY_URL
199
+ contact_details[:shorty_url] ||= {}
200
+ contact_details[:shorty_url][c[:identifiant]] = {value: c[:coordonnees][:fr], description: c.dig(:observation, :libelleFr)}
186
201
  else
187
202
  end
188
203
  end
@@ -7,6 +7,15 @@ module Apidae
7
7
 
8
8
  validates_presence_of :file_url, :project_id
9
9
 
10
+ before_save :normalize_url
11
+
12
+ def normalize_url
13
+ self.file_url = file_url.strip
14
+ unless file_url.include?('/')
15
+ self.file_url = "http://export.apidae-tourisme.com/exports/#{file_url}"
16
+ end
17
+ end
18
+
10
19
  # Note : handle reset case
11
20
  def self.pending
12
21
  where(remote_status: 'SUCCESS', status: PENDING).order(:id)
@@ -16,7 +16,8 @@ module Apidae
16
16
  store_accessor :type_data, :categories, :themes, :capacity, :classification, :labels, :chains, :area, :track,
17
17
  :products, :audience, :animals, :animals_desc, :extra, :duration, :certifications, :business
18
18
  store_accessor :entity_data, :entity_id, :entity_name, :service_provider_id
19
- store_accessor :contact_data, :telephone, :email, :website, :google, :facebook, :twitter, :yelp, :trip_advisor, :contacts
19
+ store_accessor :contact_data, :telephone, :email, :website, :google, :facebook, :twitter, :yelp, :trip_advisor, :fax,
20
+ :mobile_website, :shorty_url, :contacts
20
21
  store_accessor :location_data, :address, :place, :latitude, :longitude, :access, :territories, :environments
21
22
  store_accessor :openings_data, :openings_desc, :openings_desc_mode, :openings, :time_periods, :openings_extra
22
23
  store_accessor :rates_data, :rates_desc, :rates_desc_mode, :rates, :payment_methods, :includes, :excludes
@@ -83,8 +83,8 @@ module Apidae
83
83
  res
84
84
  end
85
85
 
86
- def api_object(apidae_obj_id)
87
- query_args = build_args(OBJECTS_ENDPOINT, {obj_ids: [apidae_obj_id], fields: ["@all"]})
86
+ def api_object(apidae_obj_id, fields = ["@all"])
87
+ query_args = build_args(OBJECTS_ENDPOINT, {obj_ids: [apidae_obj_id], fields: fields})
88
88
  query_api(query_args, true, false)
89
89
  end
90
90
 
@@ -116,8 +116,9 @@ module Apidae
116
116
  obj = Obj.update_object(obj, obj_data, apidae_project.locales, apidae_project.versions)
117
117
  else
118
118
  obj = Obj.add_object(obj_data, apidae_project.locales, apidae_project.versions)
119
- SelectionObject.create(apidae_selection_id: id, apidae_object_id: added_obj.id)
120
119
  end
120
+ SelectionObject.create(apidae_selection_id: id, apidae_object_id: obj.id) unless objects.include?(obj)
121
+
121
122
  if Rails.application.config.respond_to?(:apidae_obj_refresh_callback)
122
123
  Rails.application.config.apidae_obj_refresh_callback.call(obj.apidae_id)
123
124
  end
@@ -9,9 +9,10 @@
9
9
  </div>
10
10
  <% end %>
11
11
  <p>
12
- Pour que les données soient importées correctement,
13
- vos projets doivent être configurés pour exporter les données au format <strong>JSON V2</strong>, en
14
- <strong>groupant les objets exportés</strong>.
12
+ Pour que les données soient importées correctement, vos projets doivent être configurés pour exporter les données
13
+ au format <strong>JSON V2</strong>, en <strong>groupant les objets exportés</strong>. L'adresse du fichier d'export
14
+ est à récupérer dans :<br/>
15
+ <em>Page du projet Apidae > Onglet "Calcul des sélections et Exports " > Accéder à la ficher de l'export > Champ "Fichier d'export"</em>
15
16
  </p>
16
17
 
17
18
  <div class="<%= styles[:form_field] %>">
@@ -1,3 +1,3 @@
1
1
  module Apidae
2
- VERSION = "1.1.0"
2
+ VERSION = "1.2.2"
3
3
  end
@@ -63,3 +63,5 @@ Migrating to AddLocalesDataToApidaeProjects (20190123214635)
63
63
   (0.2ms) COMMIT
64
64
   (0.2ms) SELECT pg_advisory_unlock(6140174353533887940)
65
65
   (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
66
+ Apidae::Obj Load (26.8ms) SELECT apidae_id, COUNT(id) FROM "apidae_objs" WHERE "apidae_objs"."root_obj_id" IS NULL GROUP BY "apidae_objs"."apidae_id" HAVING (COUNT(id) > 1)
67
+ Apidae::Obj Load (2.4ms) SELECT apidae_id, COUNT(id) FROM "apidae_objs" WHERE "apidae_objs"."root_obj_id" IS NULL GROUP BY "apidae_objs"."apidae_id" HAVING (COUNT(id) > 1)
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.1.0
4
+ version: 1.2.2
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-02 00:00:00.000000000 Z
11
+ date: 2020-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails